【发布时间】:2012-03-20 11:28:09
【问题描述】:
我有一个与活动相关的任务模型,我想获得一个包含所有任务及其相关活动的数组/哈希,如下所示:
<% task_group =[
['Task1', {'Activity1' => 1, 'Activity2' => 2}],
['Task2', {'Activity3' => 3, 'Activity4'=> 4}]
] %>
我想出了Task.includes(:activities).all.map(&:name),但这只会给我一个包含活动及其名称的列表。
如何获得包含嵌套关系的完整列表?
我的模型定义:
class Task < ActiveRecord::Base
has_many :activities
class Activity < ActiveRecord::Base
belongs_to :task
【问题讨论】:
-
你为什么要做
.map(&:name)部分,是为了什么? -
我认为我需要使用 .map 来获取某种数组?
-
不,获取数组调用
.all.to_a。 -
你想要这个:
[ ['Task1', 'Activity1'], ['Task1', 'Activity2'], ['Task2', 'Activity3'], ['Task2', 'Activity3'] ]?你到底想要哪种结构? -
啊,我必须 rtfm。我认为我需要上述结构(task_group)来进行 group_select。这很容易:
f.input :activity_id, :as => :grouped_select, :collection => Task.all, :group_method => :activities。感谢您的帮助。
标签: ruby-on-rails ruby-on-rails-3 activerecord map associations