5

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).

+0

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

+0

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. –

Antwort

13

die Fehler gefunden: In meinem Benutzermodell musste ich

has_many :followed_users, through: :relationships, source: "followed_id" 

zu

ein Tippfehler in Hartl Tutorial
has_many :followed_users, through: :relationships, source: :followed 

Scheint ändern 11.10 http://ruby.railstutorial.org/book/ruby-on-rails-tutorial#code:has_many_following_through_relationships Eintrag zu sein, denn das ist, wo ich das bekam "Quelle:" Folge_ID "" Code von.

Ich habe den festen Code von Hartl Github "Beispiel App".