由于某些原因,当我传入表单数据时,它将以零保存到数据库中。我正在使用rails 4并使用强大的参数,根据服务器的一切看起来都不错,但最终它最终节省为零。非常感谢所有的帮助,我是铁杆的新手,这个让我难过。我目前也没有在模型中进行任何验证,试图让它发挥作用。
控制器代码
def create @movie = Movie.new(params[movie_params]) if @movie.save redirect_to @movie else flash[:error] = "Didn't save" render 'new' end end表单代码private def movie_params params.require(:movie).permit(:title, :rating) end
<%= form_for(@movie) do |f| %> <%= f.label :title %> <%= f.text_area :title %> <%= f.label :rating %> <%= f.text_area :rating %> <%= f.submit "Submit" %> <% end %>
答案 0 :(得分:9)
变化:
@movie = Movie.new(params[movie_params])
要:
@movie = Movie.new(movie_params)
movie_params
已经是params
的子集,因此没有理由再次将其传回params
- 这样做会导致缺少键查找(返回{{ 1}}正如你所发现的那样。)