2013-12-30 7 views
0

У меня есть has_many_through отношения, и я получаю исключение «неопределенной локальной переменной», когда я вытягиваю localhost: 300/lists.Rails has_many_through неопределенная локальная переменная

У меня есть Listables, которые состоят из списков, источников и элементов.

Listables Модель:

class Listable < ActiveRecord::Base 
belongs_to :lists 
belongs_to :sources 
belongs_to :elements 
end 

Источник Модель:

class Source < ActiveRecord::Base 
has_many :listables 
has_many :lists, through => :listables 
has_many :elements, through => :listables 
end 

элементы Модель:

class Element < ActiveRecord::Base 
has_many :listables 
has_many :lists, through => :listables 
has_many :sources, through => :listables 
end 

Списки Модель:

class List < ActiveRecord::Base 
has_many :listables 
has_many :sources, through => :listables 
has_many :elements, through => :listables 
end 
+0

Посмотрите на свалку следа, что рельсы обеспечивает и увидеть, что переменная быть помечено и какой модуль и линии ИТС – lurker

ответ

2

Название типа после belongs_to должно быть уникальным, а не множественным, как у вас есть. Например. попробуйте это:

class Listable < ActiveRecord::Base 
    belongs_to :list 
    belongs_to :source 
    belongs_to :element 
end 

См http://guides.rubyonrails.org/association_basics.html#choosing-between-belongs-to-and-has-one

+0

Хороший глаз при отсутствии сообщения реальной ошибки.. ;-) –

0

Линии HAS_MANY: источники, через =>: listables нужен: перед сквозным. Так что следует читать:

has_many :sources, :through => :listables 
Смежные вопросы