Это, вероятно, глупый вопрос, но я не могу найти хорошего ответа. Я хочу знать, как лучше вернуться к модели, которой принадлежит объект.
Например:
class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :users
end
Итак, чтобы получить сообщения пользователя, я могу использовать user.posts, но чтобы получить пользователя сообщения, я не могу сделать наоборот: post.user
Если я добавляю «пользовательский» метод к модели Post, он работает, но, похоже, это не лучший способ.
class Post < ActiveRecord::Base
belongs_to :users
def user
User.find(self.user_id)
end
end
Если вы посмотрите на это сообщение в блоге http://www.fortytwo.gr/blog/18/9-Essential-Rails-Tips в качестве примера, вы увидите, что автор использует post.user.username, которое не работает "из коробки", а также: include => [ : user], который также не работает, даже с методом user в модели Post.
Я знаю, что это элементарно, поэтому спасибо за ваше терпение. Я просто хочу знать, как лучше всего это сделать.
Моя главная цель - написать «находки», используя вложенные включения, которые ссылаются на пользователя примерно так:
post = Post.find (: all,: include => [: user])
Когда я пытаюсь это сделать, я получаю сообщение "ActiveRecord :: ConfigurationError: Ассоциация с именем 'user' не найдена; возможно, вы ошиблись?"
Большое спасибо.