2013-08-05 2 views
0

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

ActionController::ParameterMissing: 
    param not found: item 

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

new.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 

Я пока вижу твердый ответ о том, как это исправить от других вопросов I» я видел, я думаю.

+1

Вам нужно добавить в действие action, которое имеет 'def create @item = Item.create (set_params) end, чтобы новое действие было определено new @item = Item.new end –

ответ

3

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

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

+0

Хм, я сделал это раньше, но я думаю Меня куда-то перепутали. Во всяком случае, это исправлено, спасибо! – Excor