gpt4 book ai didi

ruby-on-rails - 无法通过另一个模型访问强参数。 rails 4

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:11 24 4
gpt4 key购买 nike

出于某种原因,我无法从另一个模型访问参数。我在我的代码中使用 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>

它显示了这个错误:

uninitialized constant 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。但我不知道如何解决。

还是谢谢你!

最佳答案

要查看与 @bond 关联的用户名,您需要:

1) 将 belongs_to :bonds 更改为 belongs_to :bond(注意它对于 belongs_to 类型的关联是单数);

2) 重命名bonds表中的users_id列为user_id

2) 写入@bond.user.name

关于ruby-on-rails - 无法通过另一个模型访问强参数。 rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30383504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com