2012-12-09 43 views
0

我是Rails的新手,創建了一個足球結果應用程序,我做了一個rails generate Scaffold Team name:string form:string然後我在表格中添加了幾個小組,我嘗試的下一步是創建一個存儲小組,所以我做了rails generate Scaffold Fixture week:string homeTeam:team awayTeam:team homeScore:integer awayScore:integer當我試圖更新數據庫做一個rake db:migrate我得到一個錯誤未定義的方法:團隊我瞭解鐵軌不喜歡我指定他們作爲類型團隊的方式。在Rails腳手架中調用創建的對象

我該如何去做到這一點,因爲在創建夾具時我希望能夠從已存儲在團隊表中的團隊列表中進行選擇?

回答

1

作爲一個隨機放在一邊,Ruby/Rails中的約定是使用下劃線而不是駝峯變量和方法。

回到你真正的問題!您需要在生成的TeamFixture模型中自行設置關係。通過獲得正確的外鍵,腳手架可以幫助您建立關係。

對於燈具支架,產生這樣的:

rails g scaffold fixture week:string home_team_id:integer away_team_id:integer home_score:integer away_score:integer 

注意ggenerator快捷方式和發電機不需要任何資本化。現在

,在你的Team模型你要定義你的Fixture,反之亦然(我沒有體育專家,但不會將其命名爲Game更有意義?)關係:

class Team < ActiveRecord::Base 
    has_many :home_games, :class_name => Fixture, :foreign_key => :home_team_id 
    has_many :away_games, :class_name => Fixture, :foreign_key => :away_team_id 
end 

class Fixture < ActiveRecord::Base 
    belongs_to :home_team, :class_name => Team 
    belongs_to :away_team, :class_name => Team 
end 
+0

謝謝,我得到了這個工作,當我嘗試創建一個新的燈具時,如果我有20支球隊,我必須給主隊或主隊帶來一個介於0-19(隊ID)之間的值?我如何更改表單以在homeTeam和awayTeam字段的下拉菜單中顯示團隊? – user1014888

+0

像這樣,在您的_form視圖部分夾具:http://stackoverflow.com/questions/3763963/rails-3-build-a-select-tag-with-has-many-belongs-to-association – agmin

+0

非常感謝,工作完美。 :) – user1014888

相關問題