邮件和位置的Rails关联 - has_many和belongs_to

时间:2013-05-07 20:28:39

标签: ruby-on-rails ruby database-design associations

我正在创建一个Post模型,其中有一个LocationLocation可以包含许多Post个。对于此关系,我在location_id中创建了字段Post

我想知道做以下的belongs_to和has_many:

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

创建这两个模型时,我知道我可以创建一个帖子,例如:

my_post = my_location.posts.create ....

但在我的应用程序中,人们会搜索帖子描述,并在结果中显示所有找到的帖子和位置的名称,如:

Post Description: XXXXXXX
Location Name: New York

Post Description: YYYYYYY
Location Name: New York

Post Description: ZZZZZZ
Location Name: Chicago

进行此关联的最佳方式是什么。正如我所做的那样,在我的帖子中只有我的location_id而且我不能做类似的事情(我的方法丢失错误)

my_post.location.name

我认为我做得不对如果我需要搜索每个my_post.location_id,只是为了获取位置名称。

这实际上是一些愚蠢的错误,我真的不知道我做了什么,对不起,谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

您收到的错误消息是什么?

my_post.location.name
只要my_post具有关联的位置

应该有效