Rails 4 表单数据保存为 Nil

Posted

技术标签:

【中文标题】Rails 4 表单数据保存为 Nil【英文标题】:Rails 4 Form Data Is Saving as Nil 【发布时间】:2013-05-25 10:55:39 【问题描述】:

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

控制器代码

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

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

表单代码

【问题讨论】:

【参考方案1】:

变化:

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

收件人:

@movie = Movie.new(movie_params)

movie_params 已经是params 的子集,因此没有理由再次将其传递回params - 这样做会导致缺少键查找(如您发现的那样返回nil) .

【讨论】:

以上是关于Rails 4 表单数据保存为 Nil的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 ruby​​ on rails 中创建嵌套资源时,“表单中的第一个参数不能包含 nil 或为空”

提交表单时,不会保存对 Rails 输入标记的 javascript 更改

Ruby on Rails:高级搜索,nil:Nilclass 的未定义方法 []

哈希被保存到数据库但无法在 Rails 表单中呈现其值?

使用 jQuery 星形选择器的 Rails 表单

Rails - 更新单个属性:与自定义操作或带有隐藏字段的表单链接?