<%= form_for(@helo) do |f| %>この「form_for」というのが、Viewヘルパーの機能です。これは、引数に指定したオブジェクト(ここでは@helo)をもとにフォームの生成を行うことができます。ここはオブジェクトは変数fに代入されています。そしてこのfのプロパティをもとに、以下のようにしてコントロール関係のタグが生成されます。
……コントロール関係の記述……
<% end %>
<%= f.label :title %><br />これはtitleのタグを生成している部分ですね。このようにして、<label>タグと<input type="text">タグのコードが出力されます。labelメソッドとtext_fieldを呼び出すだけなのがわかります。――こうして入力する項目を用意したら、最後に送信ボタンをつけます。これでフォームは完成です。
<%= f.text_field :title %>
<%= f.submit %>
obj = Helo.new(params[:helo])params[:helo]という形で、送信されたフォームの情報をまるごとnewの引数に指定するだけです。個別に保存するデータの項目と値を用意する必要はありません。Viewヘルパーを使ってフォームを作ると、このように非常に単純にModelを作れます。
obj.save
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※new.html.erb <p><%= @msg %></p> <hr> <%= form_for(@helo) do |f| %> <div class="field"> <%= f.label :title %><br /> <%= f.text_field :title %> </div> <div class="field"> <%= f.label :content %><br /> <%= f.text_field :content %> </div> <div class="actions"> <%= f.submit %> </div> <% end %> ※new/createアクションの修正 def new @title = "サンプルレイアウト" @header_content = "データの追加" @msg = "データの追加を行います。" @helo = Helo.new end def create obj = Helo.new(params[:helo]) obj.save redirect_to obj end
次へ >> |