出于某种原因,我无法从另一个模型访问param。我在我的代码has_many :through
关联中使用。我使用rails 4.2。
这是我的代码:
class Company < ActiveRecord::Base
has_many :bonds
has_many :users, :through => :bonds
end
class User < ActiveRecord::Base
has_many :bonds
has_many :companies, :through => :bonds
end
class Bond < ActiveRecord::Base
belongs_to :companies
belongs_to :users
end
resources :bonds
resources :users
resources :companies
我制作了一个简单的表单,通过选择名称并匹配它们,我可以在公司和用户之间建立联系。它工作正常。这是代码:
<%= form_for(@bond) do |f| %>
<div class="field">
<%= f.select :users_id, User.all.collect { |p| [ p.name, p.id ] } %>
</div>
<div class="field">
<%= f.select :companies_id, Company.all.collect { |p| [ p.name, p.id ] } %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<p>
<strong>User:</strong>
<%= @bond.users.name %>
</p>
<p>
<strong>Company:</strong>
<%= @bond.companies.name %>
</p>
显示此错误:
未初始化的常量Bond :: Users
但如果我将/views/bonds/show.html.erb
更改为此功能,则可以正常使用。
<p>
<strong>User:</strong>
<%= @bond.users_id %>
</p>
<p>
<strong>Company:</strong>
<%= @bond.companies_id %>
</p>
也许有人可以提供帮助?我想这可能是因为我无法从其他模型访问strong params
。但我不知道如何解决它。
非常感谢!
答案 0 :(得分:3)
要查看与@bond
相关联的用户名,您需要:
1)将belongs_to :bonds
更改为belongs_to :bond
(请注意belongs_to
关联类型的单数);
2)将users_id
表格中的bonds
列重命名为user_id
;
2)写@bond.user.name
。