我已經使用Google自己搜索了幾乎所有這一切,並且最接近我找到類似的東西是this stack overflow question(它試圖一次提出幾個問題)。我只有一個。好的,兩個 - 但提供第一個答案會讓你的答案接受,只要它符合下面的要求。Rails 3加入非標準關鍵字段
我正在使用Rails 3和Ruby 1.8.7與遺留數據庫。唯一需要討論的是Rails版本。我堅持使用Ruby 1.8.7和數據庫結構。
這裏所涉及的車型的顯著部分:
class List < ActiveRecord::Base
set_primary_key "ListID"
has_many :listitem, :foreign_key => "ListID", :dependent => :destroy
has_many :extra_field, :foreign_key => "ListID", :dependent => :destroy
end
class Listitem < ActiveRecord::Base
set_table_name "ListItems"
set_primary_key "ListItemID"
belongs_to :list
has_many :list_item_extra_field, :foreign_key => 'ListItemID', :dependent => :destroy
end
這是我得到的軌道控制檯:
irb(main):001:0> List.joins(:listitem).to_sql
=> "SELECT [lists].* FROM [lists] INNER JOIN [ListItems] ON [ListItems].[ListID] IS NULL"
當我期待一個SQL語句,更像是:
SELECT [lists].* FROM [lists] INNER JOIN [ListItems] ON [ListItems].[ListID] = [Lists].[ListID]
讓我去上面的查詢將得到一個正確的答案。獎勵積分,如果你可以告訴我如何達到相當於:
SELECT [lists].*, COUNT([ListItems].*) FROM [lists] INNER JOIN [ListItems] ON [ListItems].[ListID] = [Lists].[ListID]