【问题标题】:Rails association for post and location - has_many and belongs_to邮政和位置的 Rails 关联 - has_many 和 belongs_to
【发布时间】:2013-05-08 09:45:43
【问题描述】:

我正在创建一个 Post 模型,其中有一个 LocationLocation 可以在许多 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 method name for Nil”那么你有一个不同的问题,这意味着你的帖子没有分配的位置记录。
  • 费尔南多,如果您发现这只是一个错误,请更新您的问题并选择最有帮助的答案,以便将此问题标记为已回答。

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


【解决方案1】:

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

my_post.location.name

应该可以工作,只要 my_post 有关联的位置

【讨论】:

  • 我真的不知道我做了什么愚蠢的事情,但是在你回答之后,我在 Rails 控制台中尝试了它,现在它工作了......我真的很抱歉,我没有什么愚蠢的事情我这样做了它以前不起作用....非常感谢....
猜你喜欢
  • 2015-09-11
  • 2015-04-17
  • 2022-07-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多