将变量放入字符串中,它不起作用?

时间:2012-05-14 09:28:27

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有一个存储在session[:login]中的字符串,我想在SQL查询中使用,所以我写了这个。

@users = User.find(:all, :conditions => ['user = "#{session[:login]}"']) 

为什么这不起作用?谢谢!

3 个答案:

答案 0 :(得分:6)

您可以通过以下方式重建查询:

@users = User.find(:all, :conditions => ['user = ?', session[:login]]) 

但这个看起来更好:

@users = User.where(user: session[:login])

答案 1 :(得分:4)

这只是一个没有任何变量插值的字符串:'user = "#{session[:login]}"'

带有变量插值的字符串如下所示:"user = '#{session[:login]}'"

答案 2 :(得分:0)

你能试试吗

 @users = User.find(:all, :conditions => ["user = '#{session[:login]}' "]) 

使用双引号外部和单引号。