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ではびっくりマ
あ、CakePHP Advent Calendar3回目です。 とりあえず 1日目 に言っていたように modified を更新すべく自作プラグインの生存報告をしようと思います。 ControllerPrefix AdminUsersController.php の index() が /admin/users/ にルーティングされるというアレですね。 生きてます。 Exception エラーが発生したらメールを飛ばしてくれたりするアレですね。 生きてます。 Filebinder 簡単にファイルアップロード機能を追加してくれるアレですね。 生きてます。 Fuzzy フォーム入力からの $data を良きに計らって変換してくれる機能を追加してくれるアレですね。 あまり生きていません。一部最新状態にする必要があります。 Yasd 論理削除機能を追加してくれるアレですね。 生きてます。 Yav
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 ||
Help us understand the problem. What is going on with this article? Rails3.2からRails4.2に上げたらActiveRecordが遅くなったので、どうやって調査して、どのように対処したかを語ってみたい。 とても長いので、ダルい人は最初と最後だけ読めばよいです。 TL;DR 環境: Ruby 2.1.5 ARオブジェクトを大量に(ざっくり750kくらい)loadするバッチ処理 3.2系での実行時間は約480sec、 4.2系では約2900sec 約6倍の性能劣化 原因: preloadで性能劣化してた CollectionProxyの生成周りで遅くなってた Rails4からARオブジェクトの1attribute毎にObject生成するので遅い GCの時間も増えた 調査方法: Githubのcommit、Issueを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く