2013-05-07 8 views
0

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

+1

'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é. –

+0

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

+0

fait, merci beaucoup – Fernando

Répondre

0

Quel est le message d'erreur que vous obtenez?

my_post.location.name 

devrait fonctionner, dans la mesure où my_post est associé à un emplacement

+0

Je ne sais vraiment pas quelle chose stupide que j'ai faite, mais après votre réponse, je l'ai essayé dans la console des rails et maintenant Son travail ... Je suis vraiment désolé et je ne sais pas quelle chose stupide je fait que ça ne fonctionnait pas avant .... Merci beaucoup .... – Fernando

Questions connexes