2

出于某种原因,当我传入表单数据时,它会以 nil 形式保存到数据库中。我正在使用 rails 4 并且正在使用强大的参数,根据服务器,一切看起来都很好,但最终它最终保存为 nil。非常感谢所有帮助,我是 Rails 新手,这让我很难过。我目前也没有在模型中进行任何验证以使其正常工作。

控制器代码

定义创建
    @movie = Movie.new(params[movie_params])
    如果@movie.save
       重定向到@电影
    别的
      flash[:error] = "没有保存"
      渲染“新”
    结尾
  结尾

私人的 def 电影参数 params.require(:movie).permit(:title, :rating) 结尾

表格代码
<%= form_for(@movie) 做 |f| %>
    <%= f.label :title %>
    <%= f.text_area :title %>
    <%= f.label :rating %>
    <%= f.text_area :rating %>
    <%= f.submit "提交" %>
<% 结束 %>

4

1 回答 1

11

改变:

@movie = Movie.new(params[movie_params])

到:

@movie = Movie.new(movie_params)

movie_paramsparams已经的子集,因此没有理由params再次将其传递回 - 这样做会导致缺少键查找(它会nil在您发现时返回)。

于 2013-05-30T04:10:44.443 回答