用户#show中的HasManyThroughAssociationNotFoundError

时间:2012-10-05 09:09:02

标签: ruby-on-rails-3 has-and-belongs-to-many

我有以下三种模式:

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>

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

1 个答案:

答案 0 :(得分:0)

您的评论很远,链接的文档与您的问题无关。

你的代码存在的问题是,你在几个地方都有一个残酷的明显拼写错误。您的关联称为associations,但您的:through使用accociations

关联与A CC 次点。

Rails正在告诉你错误是什么:

Could not find the association :accociations in model User

您的链接文档修复问题的原因是您可能正确地拼写了新的关联名称。在编程时拼写正确的东西是非常重要的,这样一个明显错字应该真正跳出来。