我有以下三种模式:
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>
基本上我想允许用户将自己与药房联系起来。相反,我得到上面的错误,任何帮助将不胜感激。
答案 0 :(得分:0)
您的评论很远,链接的文档与您的问题无关。
你的代码存在的问题是,你在几个地方都有一个残酷的明显拼写错误。您的关联称为associations
,但您的:through
使用accociations
。
关联与A CC 次点。
Rails正在告诉你错误是什么:
Could not find the association :accociations in model User
您的链接文档修复问题的原因是您可能正确地拼写了新的关联名称。在编程时拼写正确的东西是非常重要的,这样一个明显错字应该真正跳出来。