Rails 4表单数据保存为零

时间:2013-05-30 01:20:04

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

由于某些原因,当我传入表单数据时,它将以零保存到数据库中。我正在使用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 %>

1 个答案:

答案 0 :(得分:9)

变化:

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

要:

@movie = Movie.new(movie_params)

movie_params已经是params的子集,因此没有理由再次将其传回params - 这样做会导致缺少键查找(返回{{ 1}}正如你所发现的那样。)