我有一个字符串变量如下:
the_style = @house.style # this is a string variable and contains the value "modern"
如果我按如下方式在数据库中搜索:
Building.find(:last, :conditions => [" style = ?", "#{the_style}" ])
我收到上述错误,但是如果我在字符串值中进行硬编码就可以了:
Building.find(:last, :conditions => [" style = ?", "modern" ])
将字符串变量放入查找条件的正确方法是什么?
答案 0 :(得分:1)
为什么使用引号只是为了逃避它们?
Building.find(:last, :conditions => [" style = ?", the_style ])
答案 1 :(得分:0)
不能确切地说出导致错误的原因,但是我会为这种事做出命名范围
class Building < ActiveRecord::Base
scope :by_style, lambda { |style| where("style = ?", style) }
# ...
end
在您的控制器中,您可以执行
Building.by_style(@house.style).last
答案 2 :(得分:0)
您可以使用where
方法:
Building.where(style: @house.style).first