Ruby on Rails 4 - помощник формы не передает хэш параметров контроллеру

У меня есть некоторые проблемы с тем, что мое представление не передает хэш параметров контроллеру. У меня есть форма, определенная в представлении, которое добавит новый элемент в базу данных, и я получаю сообщение об ошибке:

ActionController::ParameterMissing:
  param not found: item

Вот мои файлы кода для рассматриваемого помощника формы и моего контроллера, который обрабатывает действие.

новый.hmtl.erb

<%= form_for(@item) do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>

  <%= f.label :description %>
  <%= f.text_field :description %>

  <%= f.submit "Add", class:"btn btn-large btn-primary %>
<% end %>

items_controller.rb

class ItemsController < ApplicationController
  def new
    @item = Item.create(set_params)
  end

  private
    def set_params
      params.require(:item).permit(:name, :description)
    end
  end
end

Думаю, я еще не видел четкого ответа о том, как это исправить, из других вопросов, которые я видел.


person Excor    schedule 05.08.2013    source источник
comment
Вам нужно добавить действие создания, которое имеет `def create @item = Item.create(set_params) end, пусть новое действие будет def new @item = Item.new end   -  person Althaf Hameez    schedule 05.08.2013


Ответы (1)


Ваше действие new — это действие, которое отображает форму для создания нового элемента. Когда это действие отображается, ваши параметры пусты.

Ваше действие create — это то, которое обрабатывает форму, где будут заполнены ваши параметры.

person sevenseacat    schedule 05.08.2013
comment
Хм, я делал это раньше, но я думаю, что где-то перепутал. В любом случае, это исправлено, спасибо! - person Excor; 06.08.2013