Проблема с отношением один-ко-многим с Single Table Inheritance (Rails) - PullRequest
3 голосов
/ 12 ноября 2009

У меня проблема с ИППП и отношениями в ActiveRecord. Я думаю, что что-то пропустил в методах класса, но я точно не знаю. Ниже мои модели:

class User < ActiveRecord::Base
  has_many :advertisements
end

class Advertisement < ActiveRecord::Base
  belongs_to :user
end

class FreeAdvertisement < Advertisement
end

class PaidAdvertisement < Advertisement
end

Теперь я хочу найти все бесплатные объявления для определенного пользователя, например:

u = User.find_by_username('myself')
@freebies = u.free_advertisements.all

выдает ошибку:

undefined method `free_advertisements' for #<User:0x2360f18>

Я могу взломать его, используя u.advertisements.find :all, :conditions, но я не хочу этого делать. Пожалуйста, помогите мне решить эту проблему. Заранее спасибо.

1 Ответ

4 голосов
/ 13 ноября 2009

Я думаю, что вы хотите:

class User < ActiveRecord::Base
  has_many :free_advertisements
  has_many :paid_advertisements
end
...