ich die folgende Fehlermeldung erhalten, wenn die Homepage meiner Beispielanwendung anfordert (nach Michael Hartl Tutorial Kapiteln 11):kann nicht die Quelle Verein finden (e): followed_id in Modellbeziehung in Rails 3.2
"ActiveRecord::HasManyThroughSourceAssociationNotFoundError in Pages#home"
"Could not find the source association(s) :followed_id in model Relationship. Try 'has_many :followed_users, :through => :relationships, :source => '. Is it one of :follower or :followed?"
Das ist wirklich komisch, da ich genau die Anweisungen des Tutorials befolgt habe. Ich kopiere sogar jedes einzelne Codefragment.
Mein Benutzermodell (Auszug):
class User < ActiveRecord::Base
has_many :relationships, foreign_key: "follower_id", dependent: :destroy
has_many :followed_users, through: :relationships, source: "followed_id"
has_many :reverse_relationships, foreign_key: "followed_id", class_name: "Relationship", dependent: :destroy
has_many :followers, through: :reverse_relationships, source: :follower
Meine Beziehung Modell:
class Relationship < ActiveRecord::Base
attr_accessible :followed_id
belongs_to :follower, class_name: "User"
belongs_to :followed, class_name: "User"
validates :follower_id, presence: true
validates :followed_id, presence: true
end
Meine Migrationsdatei:
class CreateRelationships < ActiveRecord::Migration
def change
create_table :relationships do |t|
t.integer :follower_id
t.integer :followed_id
t.timestamps
end
add_index :relationships, :follower_id
add_index :relationships, :followed_id
add_index :relationships, [:follower_id, :followed_id], unique: true
end
end
Ich habe dieses Problem zu beheben versucht, aber Ich habe einfach keine Idee, was das Problem sein könnte (genaue Code-Kopie aus dem Tutorial).
Sie können Ihre Lösung als Antwort posten und akzeptieren, damit die Leute keine Zeit damit verbringen, die Frage durchzulesen, nur um festzustellen, dass Sie sie gelöst haben. – EricM
Das habe ich zuerst versucht, aber ich wollte nicht sagen, dass Benutzer, die unter einem bestimmten Ruf stehen, ihre eigenen Fragen nicht beantworten können. Wie auch immer, ich werde den Edit über die Frage stellen. Es tut mir leid, wenn Sie die ganze Frage nur lesen, um herauszufinden, dass ich es bereits gelöst hatte. –