コントローラに検証時間を設定する方法はありますか?たとえば、ユーザーが投稿を作成する場合は、5秒待ってから別のメッセージを作成する必要があります。Rails:新しいレコード作成の検証速度
コントローラでこれを実行したいのは、明らかにcurrent_userのみの検証であるためです。
ありがとうございました。
before_action :check_minimum_time_to_create_post, only: [:create]
def create
...
end
private
def check_minimum_time_to_create_post
last_post = current_user.posts.last
if last_post && last_post.created_at - Time.now <= 5.seconds
redirect_to error_page
end
end
しかし、私のようなモデルでそれを行うことをお勧めします:
短い答えは「はい」です。 – jvillian
別の短い答えです。タイムアウトがDBレベルまたはRailsアプリケーションレベルに設定されていて、DBの実行にタイムアウトよりも時間がかかる場合は、エラーが発生します。私はDBレベルで真実の1つのソースを持ってこれを行うことが理にかなっていると思います。 –
モデルにバリデーションを追加することをお勧めします。 –