概括
Rails 3.2 与 RefineryCMS 2.0。这些是我的伪代码模型:
Industry
name
has_many companies
has_many works through companies
Company
name
has_many works
belongs_to industry
Work
name
belongs to company
从 Work 的实例中,我可以说 work.company.name 并获取关联公司的名称。我希望随之而来的是,我也可以毫无问题地说出 company.industry.name。但是,我收到一个无用的错误:
wrong constant name Refinery:Industries
我最终想要做的是一直追随我的协会,即 work.company.industry.name,但公司和行业之间的链条似乎已断开。我在这里做错了什么?这是我更详细的代码。
代码
这是我的模型。鉴于行业有很多公司(公司大声笑)并且公司属于一个行业,知道什么会阻止我从关联公司访问行业属性?任何帮助将非常感激。
行业模式
module Refinery
module Industries
class Industry < Refinery::Core::BaseModel
...
attr_accessible :name, :description, :position
has_many :companys, :class_name => '::Refinery::Companys::Company', :dependent => :nullify
has_many :works, :through => :companys
end
end
end
公司模式
module Refinery
module Companys
class Company < Refinery::Core::BaseModel
...
attr_accessible :name, :position, :industry_id
has_many :works, :class_name => '::Refinery::Works::Work', :dependent => :destroy
belongs_to :industry, :class_name => '::Refinery:Industries::Industry'
end
end
end
工作模式
module Refinery
module Works
class Work < Refinery::Core::BaseModel
...
attr_accessible :name, :description, :position, :company_id
belongs_to :thumbnail, :class_name => '::Refinery::Image'
belongs_to :Company, :class_name => '::Refinery::companys::company'
end
end
end
然后在我的 erb 文件中,我正在这样做:
<% @works.each do |work| %>
...
<h5>
<%= work.company.name %>
</h5>
<% end %>
那个有效。
这给了我一个错误:
<% @clients.each do |client| %>
<h5>
<%= client.industry.name %>
</h5>
<% end %>
该错误显示:
wrong constant name Refinery:Industries