3
下面的類彼此結合(第一Rails應用程序沒有教程):許多一對多通過協會構建/創建Rails應用程序性能
class Team < ActiveRecord::Base
has_many :team_users, :class_name => "TeamUser"
has_many :users, :through => :team_users
end
class TeamUser < ActiveRecord::Base
belongs_to :user
belongs_to :team
end
class User < ActiveRecord::Base
has_many :team_users, :class_name => "TeamUser"
has_many :teams, :through => :team_users
end
如果我有用戶屬性,嘗試做的時候如下:
u.teams.build(:name => "catsteam", :captain => true, :owner => :true)
隊長和所有者是TeamUser類的屬性。執行我碰到下面的命令:
u.teams.build(:name => "catsteam", :captain => true, :owner => :true)
ActiveRecord::UnknownAttributeError: unknown attribute: captain
...
from -e:1:in `load'
from -e:1:in `<main>'
在一個側面說明,如果我得到了用戶,創建組,然後創建teamuser所有作品。我很困惑,已經搜查,但找不到任何東西。
謝謝。
這對我來說似乎有點不好。基本上你要去數據庫而不是去一次。我認爲,既然模型鏈接,它應該能夠建立適當的屬性和創建TeamUser。 – BoGs 2012-02-24 15:30:41
可能可以像創建對象那樣創建對象,但肯定不會通過傳遞屬於團隊用戶模型的':captain'和':owner'屬性。 – rpechayr 2012-02-24 16:07:27
您將隱式創建一個團隊用戶。你如何期望Rails猜測你指的是你隱式創建的實例的屬性(當你明確創建另一個實例'Team'時,'TeamUSer'? – rpechayr 2012-02-24 16:09:08