【发布时间】:2013-05-08 09:45:43
【问题描述】:
我正在创建一个 Post 模型,其中有一个 Location。 Location 可以在许多 Posts 中。对于这种关系,我在Post 中创建了字段location_id。
我正在考虑执行以下 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,只是为了获取位置名称。
这实际上是一个愚蠢的错误,我真的不知道我做了什么,对不起,谢谢你的帮助
【问题讨论】:
-
my_post.location.name应该可以工作。 究竟是什么“方法缺失错误”?如果它是“no methodnamefor Nil”那么你有一个不同的问题,这意味着你的帖子没有分配的位置记录。 -
费尔南多,如果您发现这只是一个错误,请更新您的问题并选择最有帮助的答案,以便将此问题标记为已回答。
标签: ruby-on-rails ruby database-design associations