Rails,在控制器中查询条件之间的简单数字

Dio*_*lor 1 ruby-on-rails ruby-on-rails-3

我觉得相当容易,但不知何故文档缺乏这个(可能是它的简单).

我想显示表中的值,介于最小值和最大值之间.

我的代码是:

def something
  @foo = Foo.where( :number => ((params[:min])..(params[:max])) )
  respond_to do |format|
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

The*_*Who 6

你有没有检查过你的params是数字而不是字符串?

@foo = Foo.where(number: (params[:min].to_i)..(params[:max].to_i))
Run Code Online (Sandbox Code Playgroud)

Rails确实接受范围

# select all where number between 1 and 10
Foo.where number: 1..10

# between 1 and 9
Foo.where number: 1...10
Run Code Online (Sandbox Code Playgroud)