1

00:00 から 24 時間、1 日 1 件の投稿を保証するための検証を作成しようとしています。Railsでこれを行うにはどうすればよいですか?

私は次のことをしましたが、todayメソッドをどこに置くべきかわかりません。より単純な代替案は大歓迎です。

def today
  where(:created_at => (Time.now.beginning_of_day..Time.now))
end

次に、記事モデルに検証を追加しました。

validate :time_limit, :on => :create

time_limit同じモデルで次のように定義されます。

def time_limit
 if user.articles.today.count >= 1
 errors.add(:base, "Exceeds daily limit")
end

しかし、作成アクションで「メソッドなし」エラーが発生し続けます。

undefined method `today'

このメソッドをどこに置くべきかよくわかりません。

4

2 に答える 2

0

そのエラーはtoday、スコープではなくモデルのインスタンス メソッドであるためです。

必要なものは次のscopeとおりです。

 scope :today, lambda{ where(:created_at => (Time.now.beginning_of_day..Time.now)) }
于 2013-07-21T20:02:14.563 に答える