ruby-on-rails - Rails 4 表单数据保存为 Nil

标签 ruby-on-rails forms ruby-on-rails-4

出于某种原因,当我传入表单数据时,它作为 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/

相关文章:

php - Javascript - If 条件由 "&&"分隔(需要建议)

ruby-on-rails-4 - 如何调试 SystemStackError : stack level too deep

ruby-on-rails - 如何在 Rails 4 上使用 Ajax?

mysql - 想要在数组中查询并获取传递给查询的 id 的结果

ruby-on-rails - rails STI : specific attributes for subclasses

javascript - 如何从表格的不同行获取下拉列表的 id?

ruby-on-rails-4 - Twilio ruby 短信 : undefined method `empty?'

ruby-on-rails - 向 Rails ActiveRecord 类添加方法

mysql - 数据库模型和迁移说明

JavaScript 明文框输入无法正常运行