Ruby on rails 具有一对多关联的Ruby控制台帮助

Ruby on rails 具有一对多关联的Ruby控制台帮助,ruby-on-rails,ruby,console,Ruby On Rails,Ruby,Console,你好,我已经在“订单”和“用户”之间建立了一对多的关联。我想知道如何让console只返回一个包含ID的数组,而不是一个完整的数据数组: 用户=用户。通过登录(“Lesa”)查找 用户订单 => user.orders.id NoMethodError:# from/Users/justinz/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active\u record/attribute\u methods.rb:260:in'method\u missi

你好,我已经在“订单”和“用户”之间建立了一对多的关联。我想知道如何让console只返回一个包含ID的数组,而不是一个完整的数据数组:

用户=用户。通过登录(“Lesa”)查找

用户订单 =>

user.orders.id

NoMethodError:#
from/Users/justinz/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active\u record/attribute\u methods.rb:260:in'method\u missing'
起始(irb):10

我还尝试了user.order.id,并收到了相同的消息。我做错了什么?

使用地图从每个项目中提取ID:

user.orders.map(&:id)

使用映射从每个项目提取ID:

user.orders.map(&:id)

您可以使用Symbol
来处理Rails提供的快捷方式

user.orders.collect(&:id)
这是英语的简写

user.orders.collect { |o| o.id }

您可以使用Symbol
来处理Rails提供的快捷方式

user.orders.collect(&:id)
这是英语的简写

user.orders.collect { |o| o.id }

为什么不简单地使用ActiveRecord::Associations::ClassMethod呢 “单一集合ID”


为什么不简单地使用ActiveRecord::Associations::ClassMethod呢 “单一集合ID”


我认为Ruby 2.0会反对映射或收集。。。仅仅因为它有更多的字符就收集怎么样?@jonas,这两个名字都不是很好,但至少“map”在其他语言如Haskell和PHP中很常见。我不知道“collect”在其他地方被使用。我知道Ruby 2.0会反对map或collect。。。仅仅因为它有更多的字符就收集怎么样?@jonas,这两个名字都不是很好,但至少“map”在其他语言如Haskell和PHP中很常见。我不知道“collect”在其他地方被使用。我认为Ruby 1.9会反对map或collect。。。仅仅因为它有更多的字符就收集怎么样?我认为Ruby 1.9会反对map或collect。。。仅仅因为它有更多的字符就收集怎么样?