出于某种原因,当我传入表单数据时,它作为 nil 保存到数据库中。我正在使用 Rails 4 并使用强大的参数,根据服务器,一切看起来都不错,但最后它最终保存为零。非常感谢所有帮助,我是 Rails 的新手,这让我很困惑。我目前也没有在模型中进行任何验证以使其正常工作。
Controller 代码
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 %>
最佳答案
改变:
@movie = Movie.new(params[movie_params])
收件人:
@movie = Movie.new(movie_params)
movie_params
已经是 params
的子集,因此没有理由再次将它传回 params
- 这样做会导致丢失的键查找(如您所发现的那样返回 nil
)。
关于ruby-on-rails - Rails 4 表单数据保存为 Nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826457/