我在一個視圖中使用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