ricevo il seguente messaggio di errore quando si richiede la home page del mio campione app (capitolo seguente tutorial di Michael Hartl 11):Impossibile trovare l'associazione fonte (s): followed_id in relazione modello 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?"
Questo è davvero strano, dal momento che ho seguito esattamente le istruzioni del tutorial. Ho persino copiato ogni singolo frammento di codice.
Il mio modello utente (estratto):
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
Il mio modello di relazione:
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
mio file di migrazione:
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
Ho cercato di risolvere questo problema, ma Semplicemente non mi rimane alcuna idea di quale potrebbe essere il problema (copia esatta del codice dal tutorial).
È possibile pubblicare la soluzione come risposta e accettarla in modo che le persone non passino il tempo a leggere la domanda solo per scoprire di averlo risolto. – EricM
Questo è quello che ho provato prima, ma non mi permetteva di dire "gli utenti al di sotto di una certa reputazione non possono rispondere alle loro stesse domande". Ad ogni modo, inserirò la modifica in cima alla domanda. Mi dispiace se hai letto l'intera domanda solo per scoprire che l'avevo già risolto. –