タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

activerecordに関するtohokuaikiのブックマーク (8)

  • ActiveRecord の attribute 更新方法まとめ - Qiita

    ActiveRecord の attribute 更新方法ってどんなものがあって、それぞれどんな違いがあるかご存じですか? 案外色々とあったので表にまとめてみました。リファレンスやソースコードを参考にしつつ、Rails 4.2 でテストしています。 単一の attribute 更新 メソッド 保存 バリデーション(*1) コールバック(*2) readonly チェック(*3) updated_at の更新 補足 使用例

    ActiveRecord の attribute 更新方法まとめ - Qiita
  • Railsのcounter_cacheを使ったらdeadlockが頻発した - Qiita

    rails (3.2.3) activerecord (3.2.3) mysql2 (0.3.11) ちょっと遡って話をしたほうがいいのかも。 前提:Mysql(InnoDB)でcount(1)はテーブルスキャンが発生して遅い 非力なインスタンスを使っていたので、 数十万件ってレベルからこれがボトルネックになっていた。 そのために、Railsが装備しているcounter_cacheという機能を使う。 ただ、counter_cacheってのは関連するモデルの件数を覚えておくっていう方法で、 テーブルの全レコードの数を保存しておく方法ではない。 それをしたいなら別の実装を。 参考:A Guide to Active Record Associations counter cahceってなんだ 繰り返しになるけど、関連するモデルの件数を覚えておく。 class Order < ActiveRec

    Railsのcounter_cacheを使ったらdeadlockが頻発した - Qiita
    tohokuaiki
    tohokuaiki 2015/10/15
    counter_cultureを使う
  • マイグレーションでカラムを追加する場所を指定する - わからん

    データベースのテーブル定義で、カラムの順番が重要になることなんてあるのかな、ドキュメントの生成かな、よく知らないけど。ぐらいの認識なのですが、CSV をそのままテーブルに対応させる場合に、プログラム側で都合がよいとこがありました。 あとになってカラムを追加することになった場合は、マイグレーション時の add_column で :after => :column_name と指定する ことでカラムの挿入場所を決めることができます。APIdock になくてググると stackoverflow に投稿がありました。手元の環境では MySQL を使っています。 class AddNewColToTableA < ActiveRecord::Migration # some_column の後ろに new_col, new_col_en を追加 def change add_column :tabl

    tohokuaiki
    tohokuaiki 2015/10/15
    なるほど、:afterなんてのがあったのか。
  • 新しいマイグレーションを追加してテーブルを変更 - Ruby on Rails入門

    モデルを作成することで自動的にテーブルを作成するためのマイグレーションスクリプトが作成されますが、作成したテーブルにカラムやインデックスを追加するといった変更についてもマイグレーション機能を使って行なうことができます。ここでは新しいマイグレーションスクリプトを作成してテーブルに変更を加える方法について解説します。 1.マイグレーションスクリプトの作成 2.カラムの追加と削除の場合 3.マイグレーションスクリプトの削除 4.マイグレーションスクリプトの実行 マイグレーションスクリプトの作成 マイグレーションを使ってテーブルに変更を行う場合、以前のマイグレーションスクリプトを修正するのではなく、変更を加える為の別のマイグレーションスクリプトを作成し実行します。 モデルを作成する時に自動で作成されるものではなく、新しくマイグレーションスクリプトを作成するには次のように実行します。 rails g

  • Railsのmigrationの基本とレシピ集 - Rails Webook

    RailsのMigrationの基的なことから、カラム追加/削除、インデックス追加、NULL制約、カラム名変更などのレシピ集をまとめました。 動作確認 Rails 4.1 目次 1. Migrationの基礎 1.1. migrationファイルの作成 1.2. マイグレートの実施 rake db:migrateコマンド 1.3. マイグレートの適用状況確認 rake db:migrate:statusコマンド 1.4. データの投入 rake db:seedコマンド 1.5. マイグレーションで使えるデータ型一覧 2. Migrationのレシピ集 2.1. カラムの追加(add_column) 2.2. カラムの削除(remove_column) 2.3. データ型の変更(change_column) 2.4. インデックスやユニーク制約の追加/削除(add_index/remove

    Railsのmigrationの基本とレシピ集 - Rails Webook
  • ActiveRecord で手動でカラム変更後,save しても変更が反映されない - Qiita

    @work.log += "#{Date.today.to_s}: 作業を完了しました." @work.save # log への変更が反映されている. save が「変更のあったカラムのみ更新する」というエコ仕様で,カラムが変更されたかどうかの判定がこれもエコで,実際にレコードの前後の状態を比較する,なんて面倒なことはせず「代入が行われたかどうか」みたいなところでやっているらしい. Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    ActiveRecord で手動でカラム変更後,save しても変更が反映されない - Qiita
    tohokuaiki
    tohokuaiki 2015/10/15
    保存はしない。|なんで、<< だとダメなんだろう?
  • Railsのリレーションのオプションでできること、まとめてみた。 - ハッカーを目指す白Tのブログ

    Railsのモデル間のリレーションのメソッドには、多くのオプションがある。 今日は、それらを使ってできることをまとめていきたい。 リレーションのオプションでできること一覧 1. ポリモーフィック関連の定義 2. ポリモーフィック関連が定義されたモデルと他のモデルの関連の定義 3. 親モデルに子モデルが依存するようにする 4. 親モデルのプライマリーキーを設定する 5. 外部キーのカラム名を設定する 6. 紐づくモデルのインスタンスを取得するメソッドの名前を設定する 7. 紐づくモデルのobjectに対してvalidationを実行しない 8. 2階層以上離れているモデルのインスタンスを取得する 9. 親モデルのオブジェクトがsaveされたとしても、loadされている子モデルのオブジェクトの変更はsaveされないようにする 10. ひとつのモデル(A)から他のモデルを通して、もう一度モデル(

    Railsのリレーションのオプションでできること、まとめてみた。 - ハッカーを目指す白Tのブログ
  • Active Record マイグレーション - Railsガイド

    マイグレーション(migration)はActive Recordの機能の1つであり、データベーススキーマが長期にわたって進化を安定して繰り返せるようにするための仕組みです。マイグレーション機能のおかげで、スキーマ変更を生SQLで記述せずに、Rubyで作成されたマイグレーション用のDSL(ドメイン固有言語)を用いてテーブルの変更を簡単に記述できます。 このガイドの内容: マイグレーション作成で利用できるジェネレータ Active Recordが提供するデータベース操作用メソッド群の解説 マイグレーション実行とスキーマ更新用のrailsタスクの解説 マイグレーションとスキーマファイルschema.rbの関係 1 マイグレーションの概要 マイグレーションは、データベーススキーマの継続的な変更(英語)を、統一的かつ簡単に行なうための便利な手法です。マイグレーションではRubyのDSLが使われてい

    Active Record マイグレーション - Railsガイド
  • 1