Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
オブジェクトがDBに保存される前に、そのデータが正しいかどうかを検証する仕組みをバリデーションといいますが、 RailsでActiveRecordを使ってそれを実現するにあたってよく使いそうなのをまとめます。 以下のメソッドにおいてはバリデーションがトリガされます。 create create! save save! update update! 以下のメソッドにおいてはバリデーションはスキップされます。 decrement! decrement_counter increment! increment_counter toggle! touch update_all update_attribute update_column update_columns update_counters Railsでのバリデーショントリガ Railsではvalid?メソッドを実行するとバリデーションが実
なぜTransactionが必要なのか Transationの目的は、あるいコードブロックにあるSQL文の変更を、全部成功することを守るための存在である。Transactionにより、データの統一性を保ことができる。銀行などの受け入れと引き出しの処理には必要でしょう。二つの処理の中一つが失敗すると、コードブロークにあるSQL処理を全部ロールバックされるのが、Transactionの特徴である。 Transationのロールバックが発火条件 Railsでは、ロールバックが発火するには、「例外」が必要である。これがTransactionを使うときのもっとも重要なことである。 例えば、Railsでは #update_attributeは例外を発火せずに、falseに返すとなる。そのため、#update_attributeを使うには、結果を見て、例外をスローする必要がある。Railsではびっくりマ
ActiveRecord::Base.connection.execute にかかった時間という事でよさそう。mysql2 の場合、Mysql2::Client#query にかかった時間。 調査メモ payload[:db_runtime] に入っている実行時間を書いている模様。 module ActiveRecord module Railties module ControllerRuntime #:nodoc: extend ActiveSupport::Concern protected attr_internal :db_runtime ...(略)... def append_info_to_payload(payload) super if ActiveRecord::Base.connected? payload[:db_runtime] = (db_runtime ||
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く