ruby-on-rails – 无法找到源关联:Rails 3.2中模型关系中的followed_id

在请求我的示例应用程序的主页时,我收到以下错误消息(遵循Michael Hartl的教程第11章):

“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?”

这真的很奇怪,因为我完全按照教程的说明进行操作.我甚至复制粘贴每个代码片段.

我的用户模型(摘录):

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

我的关系模型:

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

我的迁移文件

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

我一直试图解决这个问题,但我根本不知道问题可能是什么(从教程中准确复制代码).

解决方法

发现错误
在我的用户模型中,我不得不改变
has_many :followed_users,source: "followed_id"

has_many :followed_users,source: :followed

在Hartl的教程清单11.10 http://ruby.railstutorial.org/book/ruby-on-rails-tutorial#code:has_many_following_through_relationships中似乎是一个错字,因为那是我得到的“source:”follow_id“”代码.

我从Hartl的github“示例应用程序”中获得了固定代码.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...