2016-04-05 2 views
0

Я пытаюсь создать форму, которая принимает вложенные атрибуты из другой модели. Но в новой функции в контроллере я бегу @ item.item_type.build и получить эту ошибкуRails undefined метод `build 'для nil: NilClass

undefined method `build' for nil:NilClass 

это новая функция в items_controller

def new 
    @item = Item.new 
    @item_gallery = @item.item_galleries.build 
    @item_type = @item.item_type.build 
    end 

Params:

def item_params 
    params.require(:item).permit(:title, :price, :description, item_galleries_attributes: [:id, :item_id, :image], item_type_attributes: [:id, :type, :item_id]) 
end 

и внутри файла (модели) item.rb:

has_many :item_galleries, dependent: :destroy 
    has_one :item_type 
    accepts_nested_attributes_for :item_galleries 
    accepts_nested_attributes_for :item_type 

В основном я пытаюсь установить тип элемента из раскрывающегося списка формы.

Пример:

<%= f.fields_for :item_types do |t| %> 
    <%= t.label :type %> 
    <%= t.select :type, options_for_select(["Type1", "Type2", "Type3"]), prompt: "Select One" %> 
<% end %> 

Идея заключается в том, чтобы в конечном счете, фильтровать элементы, основанные на ITEM_TYPE

ответ

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