由于某种原因,我无法从另一个模型访问param。我在代码has_many :through
关联中使用。我使用rails 4.2。
这是我的代码:
/模型/公司.rb
class Company < ActiveRecord::Base
has_many :bonds
has_many :users, :through => :bonds
end
/型号/用户.rb
class User < ActiveRecord::Base
has_many :bonds
has_many :companies, :through => :bonds
end
/型号/bond.rb
class Bond < ActiveRecord::Base
belongs_to :companies
belongs_to :users
end
/配置/路由.rb
resources :bonds
resources :users
resources :companies
我做了一个简单的表格,我可以在公司和用户之间建立联系,通过选择名字和匹配他们它工作得很好代码如下:
/视图/bonds/\u form.html.erb
<%= 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 %>
下面是停止工作的代码:views/bonds/show.html.erb
<p>
<strong>User:</strong>
<%= @bond.users.name %>
</p>
<p>
<strong>Company:</strong>
<%= @bond.companies.name %>
</p>
显示此错误:
未初始化的常量绑定::用户
但如果我改成这个的话,效果很好。
<p>
<strong>User:</strong>
<%= @bond.users_id %>
</p>
<p>
<strong>Company:</strong>
<%= @bond.companies_id %>
</p>
也许有人能帮忙我想可能是因为我无法从其他模型访问
/views/bonds/show.html.erb
但我不知道怎么解决。无论如何谢谢!
最佳答案
要查看与@bond
关联的用户名,您可以:
1)将belongs_to :bonds
更改为belongs_to :bond
(注意belongs_to
类型的关联是单数的);
2)将users_id
表中的bonds
列重命名为user_id
;
2)写入@bond.user.name
。