【发布时间】:2013-07-19 16:45:24
【问题描述】:
对不起,如果标题有点混乱。我有一个Item 的表格,字段为name。有一个文本字段,用户可以在其中输入名称并提交。但是如果用户没有输入任何内容并点击提交,Rails 会给我一个param not found: item 错误,我不知道谁来解决这个问题。
items_controller.rb
def new
@item = Item.new()
respond_to do |format|
format.html
format.json { render json: @item }
end
end
def create
@item = Item.new(item_params)
respond_to do |format|
if @item.save
format.html { redirect_to items_path }
format.json { render json: @item, status: :created, location: @item }
else
format.html { render action: 'new', :notice => "Input a name." }
format.json { render json: @item.errors, status: :unprocessable_entity }
end
end
end
private
def item_params
params.require(:item).permit(:name)
end
app/views/items/new.html.haml
= form_for @item do |f|
= f.label :name
= f.text_field :name
= f.submit "Submit"
params.require(:item) 部分是导致错误的原因。当 params[:item] 不存在时处理错误的约定是什么?
【问题讨论】:
-
你应该不会得到这个错误,当你看到日志时发布的参数是什么?
标签: ruby-on-rails ruby-on-rails-4