jus*_*dao 5 ruby-on-rails ruby-on-rails-4
对不起,如果标题有点令人困惑.我有一个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
Run Code Online (Sandbox Code Playgroud)
应用程序/视图/项目/ new.html.haml
= form_for @item do |f|
= f.label :name
= f.text_field :name
= f.submit "Submit"
Run Code Online (Sandbox Code Playgroud)
params.require(:item)部分是导致错误的原因.当params [:item]不存在时,处理错误的约定是什么?
答案已经很晚了,但我还是会为其他人写的.如rails指南中所述,您需要在强参数中使用fetch而不是require,通过使用fetch,如果没有任何内容作为输入传递,则可以提供默认值.就像是:
params.fetch(:resource, {})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3206 次 |
| 最近记录: |