rails undefined方法'has_many'

时间:2012-11-24 21:31:45

标签: ruby-on-rails migration rake migrate

我正在建立一个数据库:

class CreateUsers < ActiveRecord::Migration
  def change
    has_many :listings, :dependent => :restrict #won't delete if listings exist
    has_many :transactions, :dependent => :restrict #won't del if trans exist
    create_table :users do |t|
      t.integer :key #it's hard to use string as primary
      t.string :identifier_url
      t.string :username
      t.integer :rating

      t.timestamps
    end
  end
end

class CreateListings < ActiveRecord::Migration
  def change
    has_one :book
    belongs_to :transaction
    belongs_to :user
    create_table :listings do |t|
      t.integer :key
      t.integer :condition
      t.decimal :price

      t.timestamps
    end
  end
end

我在这方面找不到任何东西,所以我猜它是非常基本的东西。

3 个答案:

答案 0 :(得分:2)

关联(has_many,belongs_to等......)应该在模型中声明,而不是在迁移中声明。

从迁移开始这是一个很好的阅读: http://guides.rubyonrails.org/migrations.html

这个用于协会: http://guides.rubyonrails.org/association_basics.html

答案 1 :(得分:0)

您不必在迁移中声明关联,而是在模型中声明!

答案 2 :(得分:0)

将您的关联放入模型中

class Member < ActiveRecord::Base

has_many :listings, :dependent => :restrict 
has_many :transactions, :dependent => :restrict

end