48
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

【Rails】form_forの使い方

form_forとは

モデルの新規インスタンスに値を追加して保存したい時に使用するヘルパーメソッド。
フォームが簡単に作成でき、入力されたデータをテーブルに保存できる。

フォームの作成

レビューのフォームを想定。

コントローラーの実装

reviews_controller.rb
  def new
    @review = review.new
  end

  def create
    Review.create(create_params)
    render action: :new #表示したいビューを表示
  end

  private
  def create_params
    params.require(:review).permit(:text)
  end

ビューの実装

new.html.haml
%h1 Review
  = form_for @review do |f|
    = f.label :text, "レビュー"
    = f.text_field :text
    = f.submit "Send"

・モデルのインスタンスを引数に持つ。

・引数のインスタンスが何も情報を持っていなければcreateアクション、すでに情報を持っている場合はupdateアクションに自動的に振り分けられる。

・フォームに入力された値は、submitボタンを押した瞬間にモデルクラスの新規インスタンスにそれぞれの属性の値としてセットされ、対応するテーブルのカラムに保存される。

ネストをした場合

groupsとmessagesが1対多関係。
ネストした場合、引数のインスタンスは二つになる。

config/routes.rb
resources :groups do 
  resources :messages
end
message/new.html.haml
= form_for [@group, @message] do |f|
...
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
48
Help us understand the problem. What are the problem?