0
我有一個裝置和一個球隊數據庫來顯示足球比賽。 我目前可以查看所有燈具(索引& show ..)和所有球隊(僅索引)。Rails belongs_to class_name與正確的外鍵?
create_table "fixtures", :force => true do |t|
t.integer "home_id"
t.integer "away_id"
t.date "date"
...
create_table "teams", :force => true do |t|
t.string "name"
...
我的裝置&團隊模型如下;
class Fixture < ActiveRecord::Base
belongs_to :home, :class_name => 'Team'
belongs_to :away, :class_name => 'Team'
...
class Team < ActiveRecord::Base
has_many :fixtures
...
我在嘗試顯示在「團隊#秀」一個團隊燈具時,下面的錯誤頁面
Processing by TeamsController#show as HTML
Parameters: {"id"=>"3"}
Team Load (0.4ms) SELECT "teams".* FROM "teams" WHERE ("teams"."id" = 3) LIMIT 1
Fixture Load (0.3ms) SELECT "fixtures".* FROM "fixtures"
Fixture Load (0.3ms) SELECT "fixtures".* FROM "fixtures" WHERE ("fixtures".team_id = 3)
SQLite3::SQLException: no such column: fixtures.team_id: SELECT "fixtures".* FROM "fixtures" WHERE ("fixtures".team_id = 3)
我理解錯誤是說這是尋找燈具TEAM_ID但沒有按」因爲我有一個home_id和away_id,因爲每個燈具總是包含兩個球隊,所以我如何構建一個查找來顯示單個球隊的燈具?
我不認爲我明白了第一種方式,我使用第二種方法得到了私人方法錯誤。在我的團隊控制器中,我有def show @team = Team.find(params [:id])@fixtures = Fixture.all(:conditions => ['away_id =:id OR home_id =:id',{:id => @ team.id}])end ...我通過將self.id更改爲@ team.id來獲得它的工作 – 2011-02-08 13:50:38