-1

我是初学者,并试图仅列出具有特定属性的数据库条目。在这种情况下,数字:字符串 = '40829'。但这对我没有用,这是我的控制器:

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

3 回答 3

3

你应该where像这样使用

Ebm.where(number: '40829')

或者

Ebm.find_by_number('40829')

请阅读有关Active Record Query Interface的文档。

于 2013-07-19T12:25:00.727 回答
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

于 2013-07-19T13:07:42.460 回答
0

你应该试试这个:

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

or 

def index
  @ebms = Ebm.find_by_number('40829')
end
于 2013-07-19T12:28:10.980 回答