我的观点有些问题没有将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
我认为,如果从我见过的其他问题中解决这个问题,我还没有找到一个可靠的答案。
答案 0 :(得分:3)
您的new
操作是呈现表单以创建新项目的操作。呈现此操作时,您的参数是空白的。
您的create
操作是处理表单的操作,您的参数将被填充。