3

私のユニットテストでうまく機能する次のクラスがありますが、もっと簡単かもしれないと感じています。

class License < ActiveRecord::Base
  scope :active, lambda {
    where("active_from <= ?", Date.today).order("version_number DESC")
  }
end

def current_license
  return License.active.first
end

public :current_license

句ににを追加しようとし.firstましたが、エラーが発生します。lambda

scope最初の結果だけが必要で、メソッドをcurrent_license完全に削除するようにするにはどうすればよいですか?

4

1 に答える 1

2

これをメソッドにすると、次のようになります。

class License < ActiveRecord::Base

  def self.current_license
    return License.where("active_from <= ?", Date.today).order("version_number DESC").first
  end

end

結果の数については、 を追加してみてください.limit(1)。詳細については、こちらをご覧ください。

于 2011-09-27T10:13:19.547 に答える