タイトルがややこしくてすみません。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
アプリ/ビュー/アイテム/new.html.haml
= form_for @item do |f|
= f.label :name
= f.text_field :name
= f.submit "Submit"
params.require(:item) 部分がエラーの原因です。params[:item] が存在しない場合のエラー処理の規則は?