2012-11-24 114 views
3

我正在做一個數據庫:軌道未定義的方法「的has_many」

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 

我不能在這個地方找到任何東西,所以我猜測它的東西很基本的。

回答

0

您不必在遷移中聲明關聯,但在模型中!

2

關聯(has_many,belongs_to等)應該在模型中聲明,而不是在遷移中。

這是一個良好的閱讀開始與遷移: http://guides.rubyonrails.org/migrations.html

而這其中的關聯: http://guides.rubyonrails.org/association_basics.html

+0

但對於使用「belongs_to的:用戶「,在表格中必須有一列user_id?!? – Klaus

+0

@克勞斯,當然可以。如果您使用生成器來創建該列的模型已經在您那裏 – TopperH

0

把你的關聯模型

class Member < ActiveRecord::Base 

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

end 
相關問題