0

概括

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
4

1 回答 1

1

Company您的模型中至少缺少一个双冒号:

belongs_to :industry, :class_name => '::Refinery:Industries::Industry'

应该

belongs_to :industry, :class_name => '::Refinery::Industries::Industry'

我还没有真正看过其余的代码,但这是第一个错误。

于 2013-08-19T20:02:05.007 回答