3
我有兩個模型已經建立並正常工作:ActiveRecord的查找方法?幫助加盟模式
class Track < ActiveRecord::Base
has_many :grand_prixes
end
class GrandPrix < ActiveRecord::Base
belongs_to :track
end
我的數據庫模式是:
create_table "tracks", force: :cascade do |t|
t.string "track_name"
t.string "description"
t.string "country"
t.string "lenght"
t.integer "pit_boxes"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "ac_track_name"
end
add_index "tracks", ["ac_track_name"], name: "index_tracks_on_ac_track_name"
create_table "grand_prixes", force: :cascade do |t|
t.datetime "gp_date"
t.integer "max_slots"
t.integer "event_id"
t.integer "track_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "grand_prixes", ["track_id"], name: "index_grand_prixes_on_track_id"
我能可以發現,通過與軌道相關聯的獲大獎id,但我想通過以前通過曲目名稱(來自另一個網站的變量)搜索到的曲目的id找到表中的GrandPrix:
GrandPrix.where (track_id: 2)
這工作,並返回我想要的GP。
我想按名稱搜索:
GrandPrix.where (Track.name = "thenameIwant")
,並返回我的ID:
SELECT id FROM WHERE tracks tracks.name LIKE 'thenameIwant';
然後,它會是這樣的:
GrandPrix.where (Track.id = SELECT id FROM WHERE tracks tracks.name LIKE 'thenameIwant')
這麼多的感謝,我得到了它這樣工作的感謝你的想法 'GrandPrix.joins(:軌道)。(軌道:{ac_track_name:「spa」})' – Nikos4Life