Je crée un modèle Post
qui a un Location
. Un Location
peut être dans beaucoup Post
s. Pour cette relation, j'ai créé le champ location_id
en Post
.Rails association pour le poste et l'emplacement - has_many et appartient à
Je me demandais de faire la belongs_to et has_many suivants:
class Post < ActiveRecord::Base
attr_accessible :description, :price, :location_id
belongs_to :location
end
class Location < ActiveRecord::Base
attr_accessible :latitude, :longitude, :name
has_many :posts
end
La création de ces deux modèles, quand je sais que je peux créer un comme après faire quelque chose:
my_post = my_location.posts.create ....
mais dans mon application, les gens vont chercher sur la description du poste, et dans les résultats, il doit montrer tous les postes qui ont été trouvés et le nom de l'emplacement, comme:
Post Description: XXXXXXX
Location Name: New York
Post Description: YYYYYYY
Location Name: New York
Post Description: ZZZZZZ
Location Name: Chicago
Quelle est la meilleure façon de faire cette association. Comme je fais, dans mon post en seulement avoir mon location_id et je ne peux pas faire quelque chose comme (je suis une méthode erreur manquante)
my_post.location.name
Je ne pense pas que je fais si je dois chercher pour chaque adresse my_post.location_id, juste pour obtenir le nom de l'emplacement.
C'était en fait une erreur stupide que je ne sais vraiment pas ce que je l'ai fait, désolé, et merci pour l'aide
'my_post.location.name' devrait fonctionner. Qu'est-ce que _exactly_ est la "méthode manquante"? Si c'est "no method' name' pour Nil "alors vous avez un problème différent, ce qui signifie que votre message n'a pas d'enregistrement de localisation attribué. –
Fernando, si vous avez découvert que c'était juste une erreur s'il vous plaît mettre à jour votre question et sélectionnez la réponse la plus utile afin que cette question est marquée comme une réponse. – Andrew
fait, merci beaucoup – Fernando