Ruby: Rubyを学ぶ
包括的なRubyとRailsガイド
👋 Stackhero ドキュメントへようこそ!
Stackhero では、すぐに使える Ruby cloud ソリューションをご提供しています。主な特長は以下の通りです:
- シンプルな
git pushだけで、数秒でアプリケーションをデプロイできます。- 独自ドメイン名をご利用いただけ、HTTPS 証明書の自動設定による高いセキュリティを実現します。
- 自動バックアップ、ワンクリックアップデート、そしてシンプルで透明性のある予測可能な料金体系で安心してご利用いただけます。
- プライベートかつ専用インフラによる最適なパフォーマンスと堅牢なセキュリティを確保しています。
時間を節約し、運用をシンプルに:Stackhero の Ruby cloud hosting ソリューションは、わずか5分でお試しいただけます!
RubyとRuby on Rails
Rubyは、シンプルさと生産性を重視して設計された高水準のインタープリタ型プログラミング言語です。そのエレガントな構文により、開発者は少ないコードで多くを達成でき、手続き型、オブジェクト指向、関数型プログラミングパラダイムをサポートします。
Ruby on Rails、しばしば単にRailsまたはRoRと呼ばれるのは、Rubyで書かれた強力なWebアプリケーションフレームワークです。モデル・ビュー・コントローラ(MVC)パターンに基づいて構築されており、設定よりも規約を重視し、DRY(Don't Repeat Yourself)原則を強調することで、複雑なWebアプリケーションの構築をより簡単かつ効率的にします。
Railsコマンドライン(CLI)
Railsのコマンドラインインターフェース(CLI)は、Railsアプリケーションを管理するための強力なツールです。新しいプロジェクトの作成、サーバーの起動、コンソールを介したアプリケーションへのアクセス、モデルやコントローラなどのさまざまなコンポーネントの生成のためのコマンドが含まれています。以下は、すべてのRails開発者が知っておくべき基本的なコマンドです。
-
新しいRailsプロジェクトを作成する:
rails new project_name -
Railsサーバーを起動する:
rails server -
Railsコンソールを開く:
rails console -
新しいコントローラを生成する:
rails generate controller controller_name action_name -
新しいモデルを生成する:
rails generate model ModelName field:type -
データベースマイグレーションを実行する:
rails db:migrate
Railsルート
ルーティングは、Railsアプリケーション内の適切なコントローラとアクションに対して、受信リクエストを接続します。アプリのURLとエンドポイントを設計するための簡単な方法を提供します。ルートはconfig/routes.rbファイルに定義されます。以下は一般的なルーティングパターンです。
-
ルートルート:
root 'controller_name#action_name' -
一般的なルート:
get '/path', to: 'controller#action' -
リソースルート(標準的なCRUDルートを生成):
resources :model_name
Railsコントローラアクション
コントローラは、モデルとビューの間の仲介役として、受信リクエストを受け取り、適切なレスポンスをレンダリングします。以下の例は、リソースのリスト表示、表示、作成、更新、削除のための一般的なコントローラアクションを示しています。
-
インデックスアクション(すべてのオブジェクトをリスト):
def index @objects = ModelName.all end -
ショーアクション(単一オブジェクトを表示):
def show @object = ModelName.find(params[:id]) end -
ニューアクション(新しいオブジェクトのフォームを表示):
def new @object = ModelName.new end -
クリエイトアクション(新しいオブジェクトを保存):
def create @object = ModelName.new(params.require(:model_name).permit(:field1, :field2)) if @object.save redirect_to @object else render :new end end -
エディットアクション(既存オブジェクトの編集フォームを表示):
def edit @object = ModelName.find(params[:id]) end -
アップデートアクション(既存オブジェクトに変更を適用):
def update @object = ModelName.find(params[:id]) if @object.update(params.require(:model_name).permit(:field1, :field2)) redirect_to @object else render :edit end end -
デストロイアクション(オブジェクトを削除):
def destroy @object = ModelName.find(params[:id]) @object.destroy redirect_to model_name_path end
Rails ActiveRecord基本クエリ
ActiveRecordは、Railsの組み込みオブジェクトリレーショナルマッピング(ORM)システムです。データベースとのやり取りを抽象化し、データベースレコードをネイティブRubyオブジェクトとして扱うことができます。以下は、データを取得および操作するための一般的なActiveRecordクエリです。
-
すべてのオブジェクトを取得:
ModelName.all -
IDでオブジェクトを検索:
ModelName.find(id) -
特定のフィールド値でオブジェクトを検索:
ModelName.find_by(field: value)
Rails ERBヘルパー
Embedded Ruby(ERB)は、HTML内にRubyコードを埋め込んで記述できるテンプレートシステムです。ERBヘルパーは、ビューでの一般的なタスクを簡素化するメソッドです。以下はいくつかの例です。
-
リンクを作成:
<%= link_to "リンクテキスト", path %> -
エラーメッセージを表示:
<% @object.errors.full_messages.each do |message| %> <div><%= message %></div> <% end %>
Railsマイグレーション
マイグレーションは、データベーススキーマを一貫性と検証可能な方法で進化させることを可能にします。Ruby DSLを使用するため、生のSQLを手で書く必要がなく、スキーマの変更をデータベースに依存しないものにします。以下は、マイグレーションを作成および実行する方法です。
-
新しいマイグレーションを作成:
rails generate migration MigrationName -
生成されたマイグレーションファイル(
db/migrate/)内:class MigrationName < ActiveRecord::Migration[6.0] def change add_column :table_name, :column_name, :type remove_column :table_name, :column_name end end