0

キーワード検索アルゴリズムを書いています。キーワードはkeywordsテーブル/モデルに保存され、送信 (検索が行われる) はsubmissionsテーブル/モデルに保存されます。セットアップに従って(私が確信していることは)一意にリンクするsubmission_keywordsテーブルもあります。ただし、ビューにforを表示しようとすると:submissionskeywordsidshas_many :throughkeywordssubmissionShow

<p>
  <b>Keywords:</b>
  <% @submission.keywords.each do |kw| %>
  <%= kw.name %>
  <% end %>
</p>

エラーが発生します:

ActiveRecord::HasManyThroughAssociationNotFoundError
Could not find the association :submission_keyword in model Submission

これら3つのモデルのコードは次のとおりです。

Submission.rb:

class Submission < ActiveRecord::Base
  attr_accessible :count, :is_sent, :is_success, :stamp, :url
  has_many :submission_keywords, :dependent => :destroy
  has_many :keywords, :through => :submission_keyword
end

キーワード.rb:

class Keyword < ActiveRecord::Base
  attr_accessible :name, :priority, :type
  has_many :submission_keywords, :dependent => :destroy
  has_many :submissions, :through => :submission_keyword
end

Submission_Keyword.rb

class SubmissionKeyword < ActiveRecord::Base
  attr_accessible :freq, :keyword_id, :submission_id, :weight
  belongs_to :submission
  belongs_to :keyword
end

ビューで をリクエストするコードは次のとおりkeywordsです。submission

has_manyモデルとの関連付けを忘れている投稿をたくさん見てきましたが、:throughご覧のとおり、それを取り上げました。何がうまくいかないのでしょうか?

4

1 に答える 1

2

ほんの少しの間違い。次のようになっているはずです。

has_many :keywords, :through => :submission_keywords

has_many :submissions, :through => :submission_keywords

通知提出_キーワード* s *

于 2013-06-06T14:34:08.610 に答える