Ceci est probablement une question stupide, mais je n'arrive pas à trouver une bonne réponse. Je veux connaître la meilleure façon de me référer au modèle auquel appartient un objet.Rails: En revenant au modèle auquel appartient l'objet
Par exemple:
class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :users
end
Donc, pour obtenir les messages de l'utilisateur, je peux utiliser user.posts, mais pour obtenir l'utilisateur du poste, je ne peux pas faire l'inverse: post.user
Si J'ajoute une méthode "user" au modèle Post, ça marche, mais ça ne semble pas être le meilleur moyen.
class Post < ActiveRecord::Base
belongs_to :users
def user
User.find(self.user_id)
end
end
Si vous regardez ce blog http://www.fortytwo.gr/blog/18/9-Essential-Rails-Tips à titre d'exemple, vous pouvez voir que l'auteur utilise post.user.username, qui ne fonctionne pas hors de la boîte, ainsi que: include => [: user], qui ne fonctionne pas, même avec la méthode "user" dans le modèle Post. Je sais que c'est rudimentaire, alors merci pour votre patience. Je veux juste savoir la meilleure façon d'accomplir cette relation.
Mon objectif principal est d'écrire "trouve" en utilisant imbriquée comprend, qui se réfèrent à l'utilisateur comme ceci:
post = Post.find (: tout: include => [: user])
Lorsque j'essaie ceci, j'obtiens "ActiveRecord :: ConfigurationError: l'association nommée" utilisateur "n'a pas été trouvée, peut-être que vous l'avez mal orthographiée?"
Merci beaucoup.
Merci. C'est officiellement la question la plus stupide que j'ai jamais posée. Je ne peux pas croire que je n'ai pas vu ça. Je me demande pourquoi cela fonctionne même si vous le faites pluriel ... – Shagymoe