ruby-on-rails – Rails 4:如何在没有选择任何内容的情况下处理
发布时间:2020-12-17 03:37:22 所属栏目:百科 来源:网络整理
导读:对不起,如果标题有点令人困惑.我有一个带有字段名称的Item的表单.有一个文本字段,用户可以在其中输入名称并提交.但是如果用户没有输入任何内容并点击提交,Rails会给我一个未找到的参数:项目错误,我不知道该解决这个问题. items_controller.rb def new @item
对不起,如果标题有点令人困惑.我有一个带有字段名称的Item的表单.有一个文本字段,用户可以在其中输入名称并提交.但是如果用户没有输入任何内容并点击提交,Rails会给我一个未找到的参数:项目错误,我不知道该解决这个问题.
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 应用程序/视图/项目/ new.html.haml = form_for @item do |f| = f.label :name = f.text_field :name = f.submit "Submit" params.require(:item)部分是导致错误的原因.当params [:item]不存在时,处理错误的约定是什么? 解决方法
答案已经很晚了,但我还是会为其他人写的.如
rails guides中所述,您需要在强参数中使用fetch而不是require,通过使用fetch,如果没有任何内容作为输入传递,则可以提供默认值.就像是:
params.fetch(:resource,{}) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |