【发布时间】:2015-05-21 20:14:12
【问题描述】:
由于某种原因,我无法从其他模型访问参数。我在我的代码中使用has_many :through 关联。我使用 Rails 4.2。
这是我的代码:
/models/company.rb
class Company < ActiveRecord::Base
has_many :bonds
has_many :users, :through => :bonds
end
/models/user.rb
class User < ActiveRecord::Base
has_many :bonds
has_many :companies, :through => :bonds
end
/models/bond.rb
class Bond < ActiveRecord::Base
belongs_to :companies
belongs_to :users
end
/config/routes.rb
resources :bonds
resources :users
resources :companies
我制作了一个简单的表格,通过选择名称并匹配它们,我可以在公司和用户之间建立联系。它工作正常。这是代码:
/views/bonds/_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>
它显示了这个错误:
未初始化的常量 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。但我不知道如何解决它。
还是谢谢!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 nested associations