Ruby: Rubyを学ぶ
包括的なRubyとRailsガイド
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるRubyクラウドソリューションを提供しています。
- シンプルな
git pushでアプリケーションを数秒でデプロイ。- 独自のドメイン名を使用し、HTTPS証明書の自動設定による強化されたセキュリティを享受。
- 自動バックアップ、ワンクリック更新、そしてシンプルで透明性があり、予測可能な価格設定で安心を提供。
- プライベートで専用のVMによる最適なパフォーマンスと強固なセキュリティを実現。
時間を節約し、生活を簡素化:StackheroのRubyクラウドホスティングソリューションを試すのに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