我在一个视图中使用form_tag时遇到了一些attr_accessor问题。Rails 3.2.8 attr_accessor看起来并没有使用form_tag
<%= form_tag set_location_locations_path, :method => "post" do %>
<%= collection_select(:location, :location_id, Location.all, :id, :location_name) %>
<%= submit_tag "Go" %>
<% end %>
而在我的位置模型我有这样的:
attr_accessor :location, :location_id
而且我也试过好措施attr_writer。
当我提交表单,我可以在我的控制台中看到这一点:
ActionView::Template::Error (undefined method `location_id' for "1":String):
和后看起来是这样的:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"oY+jSCV9Mz9iVJnJItADnHdpGhct5DhKpQ+w6JUvgNQ=", "location"=>{"location_id"=>"1"}, "commit"=>"Go"}
我想不通为什么不工作?以前我用attr_accessor没有问题。有什么我失踪?
---- ----编辑
控制器(没有多少有)
def set_location
@location = params[:location][:location_id]
end
查看这里不多之一:
= @location
当您提交表单时,参数会按预期方式发生变化,以便您真正看到错误的位置? – 2012-08-14 14:10:10
表单的要点是设置一些会话参数。出于测试目的,我只是提交给set_location(位置控制器)。我试图看到这些参数:@location = params [:location] [:location_id] – simonmorley 2012-08-14 14:11:49
'set_location'看起来像什么?您在日志中的参数之前或之后是否收到模板错误? – Mischa 2012-08-14 14:52:20