ruby-on-rails - ruby rails 3 : How to access an attribute of each record in a has_many query

标签 ruby-on-rails ruby ruby-on-rails-3 has-many

我不确定如何在标题中表达它,但我正在尝试执行以下操作。我有 2 个具有以下关系的模型:

class Campaign < ActiveRecord::Base
   has_many :points
end

class Point < ActiveRecord::Base
   belongs_to :campaign
end

现在,Point 模型有一个“locale”属性,我希望能够将特定事件的每个点的所有“locale”放入一个数组、集合或其他任何东西中,而无需执行类似

locales = Array.new
campaign.points.each do |p|
   locales << p.locale
end

我在想一些与 campaign.points.locales 类似的东西。是否有一些很好的 Rails 方法来执行此查询,或者我只需要遍历集合?

感谢您的帮助。

编辑: 还因为这种关系实际上是一种“has_many through”关系,所以这种方法不起作用,因为如果我尝试以这种简单的方式进行迭代,我会得到很多重复的语言环境。听起来应该是某种类型的连接,但我不确定。

最佳答案

我会:

campaign.points.map(&:locale)

关于ruby-on-rails - ruby rails 3 : How to access an attribute of each record in a has_many query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616643/

相关文章:

ruby-on-rails - 我如何让 searchlogic 与 Rails 3 一起工作?

ruby-on-rails - 使用 RVM 安装 Ruby

ruby-on-rails - 将 Jruby war 部署到 Tomcat6 后出现 RackInitializationException

JavaScript 到 Ruby 翻译框架

mysql - Ruby 使用日期作为 MySQL 哈希中的键

ruby-on-rails-3 - 如何在Capybara中使用测试数据库?

javascript - 如何构建基于安全定时器的按钮?

sql - Ruby on Rails 搜索查询两个表

ruby-on-rails - 使用 ActiveRecord 的 includes 方法时避免 SQL 的 JOIN?

ruby-on-rails - Ruby(Rails)将属性委托(delegate)给另一个模型的方法?