Ruby on rails 从ActiveRecord结果在Ruby中创建多维哈希

Ruby on rails 从ActiveRecord结果在Ruby中创建多维哈希,ruby-on-rails,activerecord,rails-models,Ruby On Rails,Activerecord,Rails Models,我是rails新手,在使用ActiveRecord时遇到了一些问题 现在,我有三种型号: class Project < ActiveRecord::Base attr_accessible :name has_and_belongs_to_many :tags has_many :tasks end class Task < ActiveRecord::Base attr_accessible :todo has_and_belongs_t

我是rails新手,在使用ActiveRecord时遇到了一些问题

现在,我有三种型号:

class Project < ActiveRecord::Base
    attr_accessible :name
    has_and_belongs_to_many :tags
    has_many :tasks
end

class Task < ActiveRecord::Base
    attr_accessible :todo
    has_and_belongs_to_many :tags
    has_many :tasks
end

class Tag < ActiveRecord::Base
    attr_accesible :description
    has_and_belongs_to_many :projects
    has_and_belongs_to_many :tasks
end
我不太清楚如何去创造这个。我的第一个倾向是在其中一个类中创建一个方法(我已经在其中一个类上来回讨论了……现在,我认为最好在“标记”下使用它),该方法循环遍历与给定标记匹配的项目,查询与两者匹配的任务,并将它们附加到数组中

到目前为止,这还没有奏效。我完全被难住了


有没有想过我该如何做到这一点?方法是正确的方法还是ActiveRecord内部有一个技巧来创建一个查询,至少可以让我接近这个目标?

我已经尝试修复您的模型定义

class Project < ActiveRecord::Base
    attr_accessible :name
    has_and_belongs_to_many :tags
    has_many :tasks
end

class Task < ActiveRecord::Base
    attr_accessible :todo
    has_and_belongs_to_many :tags
    belongs_to :project
end

class Tag < ActiveRecord::Base
    attr_accesible :description
    has_and_belongs_to_many :projects
    has_and_belongs_to_many :tasks
end
要在视图中显示它,请执行以下操作:

<%= @project.name %><br />
<% @tasks.each do |task| %>
  <%= task.todo %><br />
<% end %>



我希望这有帮助

我想你的问题是关于查询范围的。散列格式重要吗?
@project = Project.find_by_id(1)  # Loaded a project
@tasks = @project.tasks  # all task for this project in an array
<%= @project.name %><br />
<% @tasks.each do |task| %>
  <%= task.todo %><br />
<% end %>