Rails 3 — проблема с моделью, внешний ключ

#ruby-on-rails-3 #activerecord #model #foreign-keys #foreign-key-relationship

#ruby-on-rails-3 #activerecord #Модель #внешние ключи #foreign-key-relationship

Вопрос:

У меня есть две модели, Like и Photo.

 class Like < ActiveRecord::Base
  belongs_to :photo, :class_name => "DataLike", :foreign_key => "photo_id"
end

class Photo < ActiveRecord::Base  
  has_many :likes
end
  

И теперь я пытаюсь выполнить этот запрос:

 query = Like.select(:photo_id).joins(:photo).count
  

Но я все еще получаю эту ошибку:

неинициализированная константа типа::DataLike

Кто-нибудь может мне помочь, пожалуйста, что я делаю не так?

Большое вам спасибо

Ответ №1:

Похоже, у вас нет DataLike модели, я предполагаю, что вы хотите связать с Photo моделью:

 class Like < ActiveRecord::Base
  belongs_to :photo, :foreign_key => "photo_id"
end

class Photo < ActiveRecord::Base  
  has_many :likes
end
  

Если вы оставите эту :class_name опцию, Photo модель будет выведена. Он используется для указания класса связанной модели, если он отличается от имени ассоциации.