問題觸發的MySQL:Rails的:使用named_scope其中 「中」
我想運行一個查詢可能使用一種named_scope
觸發類似
select * from users where code in (1,2,4);
。
我的嘗試:
這是一個單碼:
named_scope :of_code, lambda {|code| {:conditions => ["code = ?", code]}}
我想是這樣
named_scope :of_codes, lambda {|codes| {:conditions => ["code in ?", codes]}}
和發送
user.of_codes('(1,2,4)')
它觸發 select * from users where code in '(1,2,4)'
由於多餘的引號引起MySQL錯誤。
PS:理想我想送user.of_codes([1,2,4])
傳遞數組時,您的第二個解決方案不會工作。而不是'[* codes]'use'codes.flatten' – 2010-06-30 20:10:25
你是說要在(?)',[* codes] .flatten]中使用'['代碼嗎?除非你在同一個調用中傳遞非'Array'和'''''',否則'[*]'將會爲你展平。我想,如果你想做'User.of_codes(1,2,[3,4])',那麼你需要'#flatten',但這看起來很尷尬。 – 2010-07-01 18:27:11