使用變量時,那裏查詢失敗一些Rails的專家能否對這種行爲在軌道4,5一些輕:Rails的查詢
>query_string = "agent_id = '1'"
=> "agent_id = '1'"
>Lead.includes('agents').where(query_string).length
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'agent_id' in 'where clause'
>Lead.includes('agents').where(agent_id = '1').length
Lead Load (0.5ms) SELECT `leads`.* FROM `leads` WHERE (1)
LeadsAssignment Load (0.4ms) SELECT `leads_assignments`.* FROM `leads_assignments` WHERE `leads_assignments`.`lead_id` IN (1, 2, 3, 4, 5)
Agent Load (0.5ms) SELECT `agents`.* FROM `agents` WHERE `agents`.`id` IN (1, 2)
=> 5
這兩個查詢應該是相同的。爲什麼一個會失敗,另一個不會呢?
謝謝! 查理
'Lead.includes( '代理')。其中(AGENT_ID = '1')。length'不即使有效的語法,也不能工作 –
這是有效的,它只是沒有做你期望的。它創建一個名爲'agent_id'的新變量,給它分配'1',然後使用它來執行'where('1')'...這是有效的,它只是匹配每一行。 – gmcnaughton
@gmcnaughton是現貨。這應該作爲答案提供。 – jeffdill2