создать функцию в контроллере, не сохраняя два отдельных параметра - PullRequest
0 голосов
/ 28 июня 2011

это коды

<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 "для: genre: Символ "или" не удается найти фильм без идентификатора ".Это не сохранение должным образом.

Это из-за моей формы отправки только форма фильма | m |или это потому, что моя функция создания в контроллере неверна?

Спасибо.

Ответы [ 2 ]

1 голос
/ 28 июня 2011

возможно вместо

params[:movie].merge(:genre)

, который вы хотели сделать

params[:movie].merge(:genre => params[:genre])

?

0 голосов
/ 28 июня 2011

Проверьте Firebug в Firefox (или инструменты разработчика Chrome, если вы используете Chrome, или журналы своего приложения, если вы не используете ни того, ни другого), и посмотрите, какие параметры фактически передаются в вашем сценарии?Похоже, ваш код ожидает получить параметр, который на самом деле не передается.Инструменты / журнал должны показать, где происходит поломка.

...