-1

Railsの初心者で、特定の属性を持つデータベースエントリのみをリストしようとしました。この場合、number:string = '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

追加の回答として..アプリケーション全体でこれが頻繁に必要な場合は、スコープを作成できます。これには、特別な番号を一度別の番号に変更する必要がある場合に、アプリケーション全体ではなく、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 に答える