0
我很新的軌道(和紅寶石),我碰到了似乎是一個簡單的問題,但我一直無法弄清楚我在做什麼錯誤。在下面的代碼示例中,我已經設置了Project,Attribute和User模型及其關聯。此外,我已經包含了遷移代碼,以防我的問題出現在那裏。Rails AssociationTypeMismatch錯誤我找不出
看起來很簡單,但是當我做在軌控制檯以下:
proj = Project.create(:name => 'first project', :link => 'http://www.me.com', :ownerid => 1, :desc => 'First project description', :active => true)
我得到這個錯誤:
ActiveRecord::AssociationTypeMismatch: Attribute(#2162685940) expected, got Array(#2151973780)
那麼它是什麼,我做錯了嗎?我得到的軌道認爲它應該得到一個屬性,而是得到一個數組,但我不明白爲什麼。我可以成功創建一個屬性或用戶,當我從項目模型中刪除'has_many:attributes'時,我可以成功創建一個項目。
class Project < ActiveRecord::Base
has_many :users
has_many :attributes
end
class Attribute < ActiveRecord::Base
belongs_to :project
end
class User < ActiveRecord::Base
has_and_belongs_to_many :project
end
class CreateProjects < ActiveRecord::Migration
def self.up
create_table :projects do |t|
t.string :name
t.string :link
t.integer :owner #user_id#
t.text :desc
t.boolean :active
t.timestamps
end
end
def self.down
drop_table :projects
end
end
class CreateAttributes < ActiveRecord::Migration
def self.up
create_table :attributes do |t|
t.string :name
t.integer :project_id
t.timestamps
end
end
def self.down
drop_table :attributes
end
end
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :email
t.string :password
t.boolean :active
t.boolean :admin
t.string :location
t.string :phone
t.timestamps
end
end
def self.down
drop_table :users
end
end
+1:好去處。 – 2011-04-22 19:51:47
Doh!這就是我爲了學習新東西而得到的結果! :-) 謝謝您的幫助。 – randall 2011-04-25 16:58:10