【发布时间】:2012-07-23 04:31:16
【问题描述】:
我有三个模型:
Class Project < ActiveRecord::Base
has_many :tasks
has_many :tags, :through => :tasks
end
Class Tasks < ActiveRecord::Base
belongs_to :project
has_and_belongs_to_many :tags
end
Class Tags < ActiveRecord::Base
has_and_belongs_to_many :tasks
has_many :projects, :through => :tasks
当我打开控制台时,我可以按预期获得我的项目和任务信息:
Tag.find(1).projects
Tag.find(1).tasks
如果我愿意,无论标签如何,我都可以获取每个项目的所有任务:
Project.find(1).tasks
无论出于何种原因,如果我通过标签获取项目,我将无法访问任务... 某事 = Tag.find(1).projects something.tasks
...我收到错误:
undefined method `tasks' for #<ActiveRecord::Relation:0x007feae4af0e70>
我已经寻找了几个小时,但找不到任何可以解决此问题的方法。根据我发现的所有内容,它应该可以工作……但事实并非如此。
我正在使用 Rails 3.2.3。
【问题讨论】:
标签: ruby-on-rails-3 activerecord has-many-through