1

我有以下三个模型:

class User < ActiveRecord::Base
  has_many :associations
  has_many :pharmacies, :through => :accociations 
end

class Associations < ActiveRecord::Base
  belongs_to :user
  belongs_to :pharmacy
end

class Pharmacy < ActiveRecord::Base  
  has_many :associations
  has_many :users, :through => :accociations
end

当我打开users#show操作时,我收到以下错误:

ActiveRecord::HasManyThroughAssociationNotFoundError 在用户#show

显示 /Users/fanboy/Sites/ndt_app_v6/app/views/users/show.html.erb 其中第 14 行提出:

找不到关联:模型用户中的关联

提取的源代码(在第 14 行附近):

11:   <div class="span8">
12:     <%= form_for(@user) do |f| %>
13:       <%= f.label :pharmacy_ids, "Pharmacies" %><br />
14:       <%= f.collection_select :pharmacy_ids, Pharmacy.order(:name), :id, :name, {}, {multiple: true} %>
15:     <% end %>
16:   </div>
17: </div>

基本上我想让用户将自己与药房联系起来。相反,我得到了上面的错误,任何帮助将不胜感激。

4

1 回答 1

0

您的评论已经过时了,链接的文档与您的问题无关。

你的代码的问题是你在几个地方有一个非常明显的错字。你的协会被称为associations,但你的:through用途accociations

协会与 A CC ociations。

Rails 准确地告诉你错误是什么:

Could not find the association :accociations in model User

您的链接文档解决了您的问题的原因是您可能正确拼写了新的关联名称。在编程时正确拼写是非常重要的,如此明显的拼写错误应该会引起你的注意。

于 2012-10-05T13:59:24.030 回答