4
在下文中,我想在第一?
待字面意義使用,僅第二?
應作爲綁定變量標記:Rails find_by_sql - 使用「?」從字面上而不是綁定變量?
Foo.find_by_sql ["select IFNULL(col,'?') from foos where id = ?",1]
此錯誤:
錯號碼綁定變量的(1 for 2)
我將如何逃避第一個?
所以它是從字面上處理?
在下文中,我想在第一?
待字面意義使用,僅第二?
應作爲綁定變量標記:Rails find_by_sql - 使用「?」從字面上而不是綁定變量?
Foo.find_by_sql ["select IFNULL(col,'?') from foos where id = ?",1]
此錯誤:
錯號碼綁定變量的(1 for 2)
我將如何逃避第一個?
所以它是從字面上處理?
ActiveRecord不夠聰明,忽略字符串文字中的佔位符,因此它認爲'?'
中的?
是佔位符而不是字符串的一部分。解決這個問題的最簡單的方法是使用指定的佔位符:
Foo.find_by_sql ["select IFNULL(col, '?') from foos where id = :id", :id => 1]
當ActiveRecord的看到了它會尋找指定的佔位符(使用Ruby的符號表示),而不是位置?
佔位符數組的第二個元素的哈希值。我傾向於傾向於命名的佔位符時期,因爲它們更具可讀性和更強大。