Ruby on Rails 4 - 表单助手不将params哈希传递给控制器

时间:2013-08-05 06:08:01

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

我的观点有些问题没有将params哈希传递给控制器​​。我有一个在视图中定义的表单,它将向数据库添加一个新项目,我收到错误:

ActionController::ParameterMissing:
  param not found: item

以下是我所讨论的表单助手的代码文件以及处理该操作的控制器。

new.hmtl.erb

<%= form_for(@item) do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>

  <%= f.label :description %>
  <%= f.text_field :description %>

  <%= f.submit "Add", class:"btn btn-large btn-primary %>
<% end %>

items_controller.rb

class ItemsController < ApplicationController
  def new
    @item = Item.create(set_params)
  end

  private
    def set_params
      params.require(:item).permit(:name, :description)
    end
  end
end

我认为,如果从我见过的其他问题中解决这个问题,我还没有找到一个可靠的答案。

1 个答案:

答案 0 :(得分:3)

您的new操作是呈现表单以创建新项目的操作。呈现此操作时,您的参数是空白的。

您的create操作是处理表单的操作,您的参数将被填充。