2015-06-18 3 views
0

items_controller.rbпаров отсутствуют или значение пустое: пункт

class ItemsController < ApplicationController 

    def index 
    @items = Item.all 
    render text: @items.map{ |i| "#{i.name}: #{i.price}" }.join('<br/>') 
    end 

    def create 
    item_params = params.require(:item).permit(:name, :description, :price, :real, :weight) 
    @item = Item.create(item_params) 
    render text: "#{@item.id}: #{@item.name}(#{[email protected]_record?})" 
    end 

end 

ошибки: PARAM отсутствуют или значение пустое: пункт

Rails.root: E:/work/my_store_2

Приложение Trace | Рамочная трасса | Полный Трассировка приложение/контроллеры/items_controller.rb: 9: в `создать» Request

Параметры:

{ "имя" => "car1", "описание" => "хорошая машина", «цена "=>" +500000" , "вес" => "0", "реальное" => "1"}

консоль

Started GET "/items/create?name=car1&description=good+car&price=500000&weight=0&real=1" for 127.0.0.1 at 2015-06-18 21:25:39 +0300 
Processing by ItemsController#create as HTML 
    Parameters: {"name"=>"car1", "description"=>"good car", "price"=>"500000", "weight"=>"0", "real"=>"1"} 
Completed 400 Bad Request in 2ms 

ActionController::ParameterMissing (param is missing or the value is empty: item): 
    app/controllers/items_controller.rb:9:in `create' 

где моя ошибка?

+2

, пожалуйста, разместите свои маршруты ... создание должно быть опубликовано и не получить – gabrielhilal

ответ

1

, когда вы делаете params.require(:item), требуется, чтобы параметр item существовал. Таким образом, действие create ожидает таких параметров, как параметры: { "item" => {"name"=>"car1", "description"=>"good car", "price"=>"500000", "weight"=>"0", "real"=>"1"} }

Вам не нужен корневой ключ item.

1

Вам не хватает «элемента» в вашей форме. Добавьте поле с id = "item".

Смежные вопросы