創建功能,這些都是代碼在控制器不保存兩個不同的PARAMS
<p>
<% form_for @movie do |m| %>
<%= m.label :title, 'Title' %>:
<%= m.text_field :title %></br>
<%= m.label :release_year, 'Release Year' %>:
<%= m.select :release_year, (1900..2011) %></br>
</br>
<% Movie.genres.each do |genre| %>
<%=h genre %>
<%= check_box_tag :genre, genre %></br>
<% end%>
</br>
<%= m.submit "Save" %>
<% end %>
</p>
和我的控制器代碼:
def create
@movie = Movie.new(params[:movie].merge(:genre))
if @movie.save!
render show_path
else
render new_path
end
但不管是什麼原因,我不斷收到錯誤信息,說「未定義方法`each_pair'用於:流派:符號「或」無法找到沒有ID的電影「。它沒有正確保存。
是因爲我的提交表單只是電影表格| m |或者是因爲我在控制器中的創建功能是錯誤的?
謝謝。在Firefox
謝謝!這工作。你能解釋一下爲什麼嗎?謝謝! – noob
這是因爲哈希#合併需要另一個散列作爲參數,並且您傳遞的是基本上是字符串的符號,並且沒有#each_pair方法。當調用方法是這樣的:方法(:A => B)它是自動解析爲方法({:A => B}) - 參數將是散列 – keymone
啊,我看到。非常感謝! – noob