Ruby/RubyOnRails-日本語
Rails 一日一つメソッド (Day34) form_withメソッド
아랑팡팡
2024. 2. 15. 19:05
728x90
Rails 一日一つメソッド (Day34) form_withメソッド
1. form_withメソッドとは
- Rails5.1から導入され form_for, form_tagの機能を統合し、form_withで model formとmodelと関連がないFormを生成できる。 - form_withは情報を送信するためにヘルパーメソッドで、form_withを使うことによって、簡単に入力Formに必要なHTMLを作成する事ができる。
1) 入力された情報をDataBaseに保存しない時
<%= form_with url: "Pass" do |form| %>
<!-- 内容 -->
<% end %>
2) 入力された情報をDataBaseに保存する時
<%= form_with model: modelcalssのインスタンス do |form| %>
<!-- 内容 -->
<% end %>
<%= from_with model: @post do |form| %>
<%= form.text_field :title %>
<%= form.text_area :body %>
<%= form.submit "sumbit" %>
<% end %>
2. form_withメソッド以前に使ったヘルパーメソッド
1) form_tag
<%= form_tag('/main', method: :post) do %>
<input type="text" name="nickname">
<input type="submit">
<% end %>
2) form_for
<%= form.for(@user) do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
3. form_withの基本使い方
1) modelオプション
<%= form_with model: ModelClassのインスタンス do |form| %>
<!-- 内容 -->
<% end %>
2) urlオプション
<%= form_with url: "Pass" do |form| %>
<!-- 内容 -->
<% end %>
<%= form_with url: root_path do |form| %>
<!-- 内容 -->
<% end %>
form_with引数
1) model
- Formと繋がるModelのオブジェクトを指定する。form_withは自動にmodelの状態(新しいレコードなのか、既存のレコードなのか、など)を判断し、URLとHTTPメソッドを推論する。
# Controller
def new
@user = User.new
end
- Controllerで作成したインスタンスが newメソッドで新たに作成されて情報が何もない場合は、create, findアクションなどで作成される。
- 情報を持っている場合は、updateアクションへ自動的に振り分けてくれる。
# View
<%= form_with model: @post do |form| %>
<%= form.text_field :title %>
<%= form.text_area :body %>
<%= form.submit "submit" %>
<% end %>
728x90
반응형
LIST