tac*_*tac 1 ruby-on-rails ruby-on-rails-4
如何在where函数中使用变量?
我有一个带有两个字段A和B(都是整数)的Rate模型,这有效:
Rate.where('A = 1 and B = 2')
Run Code Online (Sandbox Code Playgroud)
如何传递我在params哈希中得到的变量?
x = params[:x]
y = params[:y]
Rate.where('A = x and B = y')
Run Code Online (Sandbox Code Playgroud)
这不起作用并返回错误.
@AaditiJain 回答是最喜欢的做法。
另一种选择是使用符号而不是?如下所示:
Rate.where("A = :x and B = :y", x: params[:x], y: params[:y] )
Run Code Online (Sandbox Code Playgroud)
您可以使用问号而不是变量,并将这些变量作为第二个和第三个参数传递:
Rate.where('A = ? and B = ?', x, y)
Run Code Online (Sandbox Code Playgroud)
您可以在任何直接SQL查询中使用问号,但我更喜欢使用带哈希的标准AR查询语法(如提到的@AaditiJain):
Rate.where(a: x, b: y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2620 次 |
| 最近记录: |