4
ARエラーメッセージの示唆したようにソースを定義したようですが、まだエラーが発生しています。何か案が?ルビー、3.2 Railsの1.9.2Railsに多数のエラーがあります
class Document < ActiveRecord::Base
has_many :participations
has_many :users, :through => :participations
has_many :editing_sessions
has_many :editors, :through => :editing_sessions, :source => :users
end
class User < ActiveRecord::Base
has_many :participations
has_many :documents , :through => :participations
has_many :editing_sessions
has_many :open_documents, :through => :editing_sessions, :source => :documents
end
class EditingSession < ActiveRecord::Base
belongs_to :users
belongs_to :documents
end
create_table "editing_sessions", :force => true do |t|
t.integer "user_id"
t.integer "document_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
Console:
u = User.first
=> ... OK
u.editing_sessions
=> []
u.open_documents
=> ActiveRecord::HasManyThroughSourceAssociationNotFoundError: Could not find the source association(s) :document in model EditingSession. Try 'has_many :open_documents, :through => :editing_sessions, :source => <name>'. Is it one of :users or :documents?
のコンベンションザッツ、このワットをありがとう問題として!それは私には分かりませんでした。私の欠点は何ですか? – aaandre
Documentsクラスの関連付けは "has_many"なので、railsは複数形でなければならないと仮定しているため、source =>:documentsでなければなりません。しかし、EditingSessionは "belongs_to"を使用するので、それは1つのドキュメントにしか属していないので、 ":document"という名前のフィールドがあるはずです。 – plainjimbo
また、エラーでは、「ソースアソシエーション(s):ドキュメントを見つけることができませんでした」と表示されます。大会全体には少し慣れています。 – plainjimbo