1

私は次の3つのモデルを持っています:

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 in Users#show

/Users/fanboy/Sites/ndt_app_v6/app/views/users/show.html.erbを表示しています。14行目が表示されています。

モデルユーザーで関連付け:accociationsが見つかりませんでした

抽出されたソース(行#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ます。

アソシエーションとACCアソシエーション。

Railsは、エラーが何であるかを正確に伝えています。

Could not find the association :accociations in model User

リンクされたドキュメントで問題が修正された理由は、おそらく新しい関連付け名のスペルが正しいためです。プログラミングするときは、物事を正しく綴ることが非常に重要であり、そのような明らかなタイプミスは本当にあなたに飛び出すはずです。

于 2012-10-05T13:59:24.030 に答える