0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

Railsアプリケーション開発において、データベースを扱う基本的なCRUD(Create, Read, Update, Destroy)処理の実装方法について解説します。また、リンクの作成方法やバリデーションの設定、ビューの表示方法の違い、対話型プログラミング環境の選択についても触れます。

link_toメソッド

link_toメソッドは、簡単にリンクを作成するためのRailsヘルパーです。以下のように使用します。

practice.html.erb
<%= link_to 表示させるテキスト, リンク先URL [,オプション] %>

詳細画面の実装方法

投稿の詳細画面では、特定のデータ1つをデータベースから取得し、それを表示します。データの取得は、「モデル名.find(params[:id])」を使用し、取得したデータをインスタンス変数に格納します。その後、データを格納したインスタンス変数をviewファイルで利用して詳細画面を表示します。リンクにはlink_toメソッドを利用します。

CRUD処理

CRUD処理はデータベースに対して行う基本的な処理で、以下の4つが含まれます。

create(作成): list.save
read(読み取り): List.all, List.find(params[:id])
update(更新): list.update(list_params)
destroy(削除): list.destroy

バリデーション

バリデーションは、モデルに記述し、その後コントローラにも記述します。例えば、以下のように記述します。

practice.rb
validates :title, presence: true
validates :body, presence: true
validates :image, presence: true

また文字数の制限を設定することもできます。

文字数制限を追加するには、lengthオプションを使用してvalidatesに制限を追記します。以下の例では、titleの文字数を1〜50文字、bodyの文字数を1〜500文字の範囲に制限しています。

practice.rb
validates :title, presence: true, length: { in: 1..50 }
validates :body, presence: true, length: { in: 1..500 }
validates :image, presence: true

lengthオプションには、他にもminimumやmaximumなどの指定が可能です。例えば、titleの最小文字数を10文字、最大文字数を100文字に制限する場合は以下のようになります。

practice.rb
validates :title, presence: true, length: { minimum: 10, maximum: 100 }

redirect_toとrenderの違い

redirect_toは、新しいHTTPリクエストを発行し、別のURLにリダイレクトします。このリダイレクトによって、ブラウザが新しいアドレスに移動し、新しいページが表示されます。この際、現在のアクションのコンテキストは失われ、新しいアクションが実行されます。

一方、renderは、現在のアクションのコンテキストを維持しながら、別のビューを表示します。これにより、現在のアクションで設定されたインスタンス変数やローカル変数などのデータがそのままビューに渡され、利用できます。このため、「render」は主に、エラーメッセージを表示する場合や、フォームのバリデーションに失敗したときなどに使用されます。ブラウザのアドレスバーには、現在のURLが表示されたままになります。

要するに、「redirect_to」は新しいHTTPリクエストを発行して別のURLにリダイレクトし、現在のアクションのコンテキストが失われます。一方、「render」は現在のアクションのコンテキストを維持しながら別のビューを表示し、データを引き継ぐことができます。

@ここでの「コンテキスト」とは、現在のアクションに関連するデータや状態を指します。具体的には、コントローラ内のインスタンス変数やローカル変数などが含まれます。

irbとpryの違い

irbとpryは、どちらもRubyプログラムを対話的に実行できるREPLツールですが、違いがあります。irbはRubyにデフォルトで含まれるシンプルなツールで、pryはより強力で拡張性のあるREPLツールです。

代表的なデータ型

Railsでは、さまざまなデータ型が使用できます。以下に代表的なデータ型を示します。

integer: 数値(整数)
decimal: 数値(精度の高い小数)
float: 数値(浮動小数)
string: 文字(短い文字列)
text: 文字(長い文字列)
date: 日付
datetime: 日時
time: 時刻
timestamp: タイムスタンプ
binary: バイナリ
boolean: 真偽

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?