Rails查找具有特定属性的条目

时间:2013-07-19 12:22:36

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

Im rails beginner并尝试仅列出具有特定属性的数据库条目。 在这种情况下,数字:string ='40829'。 但它对我没有用,这是我的控制器:

def index
    @ebms = Ebm.find(params[:number => '40829'])
end

3 个答案:

答案 0 :(得分:3)

您应该使用where,就像这样

Ebm.where(number: '40829')

Ebm.find_by_number('40829')

请阅读有关Active Record Query Interface

的文档

答案 1 :(得分:1)

作为一个额外的答案..如果您在整个应用程序中经常需要这个,可以创建一个范围。这样做的好处是,如果您必须将特殊号码更改为其他号码,则只需更改一段代码,而不是整个应用程序。 (Rails4语法)

# your model app/models/ebm.rb
class Ebm < ActiveRecord::Base
   scope :my_scope_name, -> { where(:number => "40829") }
end

# usage in controller
def index
  @ebms = Ebm.my_scope_name
end

有关范围的更多信息:http://guides.rubyonrails.org/active_record_querying.html#scopes

答案 2 :(得分:0)

你应该试试这个:

def index
  @ebms = Ebm.where(number: '40829')
end

or 

def index
  @ebms = Ebm.find_by_number('40829')
end