Scusate se il titolo è un po 'confuso. Ho un modulo per un Item
con il campo name
. C'è un campo di testo in cui l'utente può inserire un nome e inviarlo. Ma se l'utente non digita nulla e non fa clic su Invia, Rails mi dà un errore param not found: item
e non sono sicuro su chi aggirare questo problema.Rails 4: Come gestisco un modulo inviato dove non è stato selezionato nulla?
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/oggetti/new.html.haml
= form_for @item do |f|
= f.label :name
= f.text_field :name
= f.submit "Submit"
Il params.require (: articolo) parte è quello che causa l'errore. Quale convenzione per gestire l'errore quando params [: item] non è presente?
non si dovrebbe ottenere questo errore, quali sono i parametri pubblicati quando si vede il registro? –