演習課題「フォームにカラムを追加する」
右の環境には、「myblog」プロジェクトに「Diary」という1行掲示板が作成されています。
この投稿フォームページに、次の順序で「weather」カラムを追加してください。
「weather」カラムは、すでにデータベースに追加してあります。
content, weather
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#04:投稿フォームの動作を理解しよう
ここでは、Rails アプリの Web フォームの動作について、さらに理解を深めます。そのために、投稿フォームにカラムを追加すると共に、form_for メソッドの使い方について学習します。
複数のビューの共通要素を記述するテンプレート。
呼び出すには、次のようにrenderメソッドを利用する。<%= render 'form', article: @article %>
この場合、「_form.html.erb」が部分テンプレートのファイル名になる。
また、article変数で、@articleのオブジェクトを利用できる。
- form_for:投稿フォームのように、Modelの新規作成・更新に使用する
- form_tag:検索フォームのように、Modelを更新しない場合に使用する
対象となるモデルのカラムをf変数で取り出して、フォームの構成要素を指定する。<%= form_for(@article) do |f| %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :content %>
<%= f.text_field :content %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
- RailsのViewでのrenderメソッドの使い方 - Rails Webook
http://ruby-rails.hatenadiary.com/entry/20140807/1407419013
- 【Rails】form_for/form_tagの違い・使い分けをまとめた - Qiita
http://qiita.com/shunsuke227ono/items/7accec12eef6d89b0aa9
- Action View フォームヘルパー | Rails ガイド
https://railsguides.jp/form_helpers.html
- Railsでform_forを使った処理 - Qiita
http://qiita.com/shiro615/items/242600033b769d23798f