2

コントローラ:@micropost = Micropost.new(params[:micropost])

しかし、この form_tag はparams[:content]代わりに私を送信していますparams[:micropost][:content]

<%= form_tag( {:controller => :microposts, :action => :create}, :remote => true) do %>

    <%= text_area_tag :content, "", :size=> "20x2" %>
    ...
    ...
    ...
    <%= submit_tag "submit" %>
<% end %>

サーバ:

Processing by MicropostsController#create as JS
Parameters: {"utf8"=>"✓", "content"=>"sdfsdf", "commit"=>"submit"}
4

2 に答える 2

9

次のいずれかを行う必要があります

<%= text_area_tag "micropost[content]", "", :size=> "20x2" %>

また

<%= form_for :micropost, :url=>{ :controller => :microposts, :action => :create}, :remote => true do |f| %>
    <%= f.text_area :content, "", :size=> "20x2" %>
<% end %>
于 2012-08-20T12:06:17.280 に答える
2

との混合を避ける必要がform_forありinput_tagます。

を宣言するときform_for @an_object do |form|のベスト プラクティスは、form.text_area :contentwhen:contentが の属性であることを使用すること@an_objectです。

この場合、:text_area_tag "an_object[content]"と書くこともできますが、少し汚いです。

于 2012-08-20T12:15:38.240 に答える