タグ

Active Recordに関するiR3のブックマーク (44)

  • 今さらRails3メモ - その5: Model Association -

    まずは設計以前の話から。(というか設計は語れません。) あと、Rails ガイド読むならこのエントリ要らない。 Ruby on Rails Guides: A Guide to Active Record Associations 基概念用語DBMS 用語としては entity の relation だと思うんだけど、Rails 的には クラスベース OOP の用語をそのまま拝借して Model(クラス)の association と呼ぶらしい。 DBMSの制約はただの約束外部キー制約 = リレーションシップではないDBMS はこの制約を無視して構わないリレーションシップはテーブル設計を開発者が「そう決めた」からリレーションシップを設定するのが外部キー制約ではないことに注意してください。外部キー制約は、列の値がターゲットテーブルの既知のキーを参照するかどうかチェックすべきことを、データベ

  • ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active Record Associations - 株式会社ウサギィwiki

    Active Record アソシエーションのガイド(A Guide to Active Record Associations) † このガイドでは、 Active Record アソシエーション機能を説明します。 このガイドを参照することで、以下のことができるようになります: Active Record のモデル間のアソシエーションの宣言 Active Record アソシエーションの様々な種類への理解 アソシエーションの作成によってモデルに追加されるメソッドの利用 ↑ 1 何故アソシエーションなの?(Why Associations?) † 何故モデル間にアソシエーションが必要なのでしょう? それは、コード内の一般的な操作を単純で簡単にするからです。 例えば、 顧客のためのモデルと注文のためのモデルが含まれている簡単なRailsアプリケーションを考えて下さい。 各顧客は、多く

  • 観察から知る Rails3 ActiveRecord + Arel の特徴と使い方 - tashenの日記

    Rails 3 になって Active Record に Arel という機構が適用された。これを利用することで、Active Record のサブクラスに対してメソッドチェインのようにSQLクエリを構成し、発行することができる。*1 例えば以下のようにクエリを構成できる。 ruby-1.9.2-p0 > Person.where('age > ?', 10) => [#<Person id:1, name:"taro", age:24>, #<Person id:2, name:"jiro", age:13>]そしてメソッドチェインによって検索条件を追加。 ruby-1.9.2-p0 > Person.where('age > ?', 10).where('age < ?', 20) => [#<Person id:2, name:"jiro", age:13>]to_sql によって利

    観察から知る Rails3 ActiveRecord + Arel の特徴と使い方 - tashenの日記
  • はてなブログ | 無料ブログを作成しよう

    理解はできるけどそれだけだな 「ピザ屋の匂いって、全部他人が注文したものから香る匂いだと思うと、悔しいよな」と友人に言ったら「理解はできるけどそれだけだな」と言われた。全く持ってその通りだ。この言葉を発する時、自分は日語のテクニックだけで言葉を作っていて、伝えたい想いとかそう…

    はてなブログ | 無料ブログを作成しよう
    iR3
    iR3 2012/04/30
    なるほど。deleted_at:datetime というカラムで論理削除ね。
  • Active Record Query Interface 3.0 - (m.onkey.org)

    I’ve been working on revamping the Active Record query interface for the last few weeks ( while taking some time off in India from consulting work, before joining 37signals ), building on top of Emilio’s GSOC project of integrating ARel and ActiveRecord. So here’s an overview of how things are going to work in Rails 3. What’s going to be deprecated in Rails 3.1 ? These deprecations will be effecti

    iR3
    iR3 2012/04/20
    復習
  • Rails 3 + activerecord, the best way to "mass update" a single field for all the records that meet a condition

  • Rails3 ActiveRecordのsaveを追跡した 1 - A Life Less Ordinary

    前回エントリ Rails3 INSERT時のArrayフォーマット にて、INSERT時のArray型のフォーマットが気になってたんですが、 そもそも、saveとかupdate時には、裏で何が巻き起こっているのか、ということでソースを追いました。 Rails3.1です。 scaffoldでできたソースでは、def create で書いてあるとおり、 @hoge = Hoge.new(params[:hoge]) @hoge.save で、データベースに入力データが保存されます。 この save で何をやってんのか。 ここでの、Hogeクラスの親は ActiveRecord::Base。 その中の、Transactionsモジュールにある save メソッドにまずはいくみたいです。 # transaction.rb def save(*) rollback_active_record_sta

  • 「ActiveRecord」の基本とデータの参照

    「ActiveRecord」の基とデータの参照:Ruby on Rails3で学ぶWeb開発のキホン(3)(1/2 ページ) 前回まではRuby on Railsの全体像について見てきました。今回からは、Railsを構成する各部品について詳しく解説していきます。まずは、Railsのモデル層の標準的なライブラリである「ActiveRecord」に焦点を当てます。とはいえ、ActiveRecordの提供する機能は膨大なので、数回に分けて解説することにします。今回は、ActiveRecordの基的な考え方や、使い始めるために必要なマイグレーションの知識、参照系の操作の仕方をご紹介します。 ActiveRecordとは ActiveRecordはRuby on Railsを構成する最も重要なライブラリの1つで、Railsのモデル層に相当し、O/Rマッピングを担当します 。このライブラリの名前は

    「ActiveRecord」の基本とデータの参照
  • ActiveRecord: コレクションの挙動 - Hello, world! - s21g

    This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/94 度々忘れがちなので備忘録。 ActiveRecordのhas_manyアソシエーションなどを使うと、コレクションに対するアクセサが追加されます。 class Group < ActiveRecord::Base has_many :members end このとき、コレクションに対して以下のようにARオブジェクトを追加すると、 group.members << Member.new(params[:member]) group.new_record?が真の場合はMemberはそのままコレクションに追加され、DBは変化しませんが、group.new_record?が偽の場合は、Memberは直ちにsaveされ、DBに格納されます。

  • [Rails] ActiveRecordオブジェクト保存時に「WARNING: Can't mass-assign protected attributes: type」 | CreativeStyle

    保存しようとしていたモデルには普通に「type」という属性を定義していたのですが、『「type」属性は保護されているので値を設定できませんよ』とのこと。保護した覚えはないのに。 どうしてだろうと不思議に思ったので調べてみると、どうやらこの「type」属性は、Railsの「単一テーブル継承(Single Table Inheritance)」という機能で使われる特殊な属性だそう。つまり予約語。 「単一テーブル継承」は、継承関係にある複数のモデルのデータを、一つのテーブルで管理するための機能。テーブルに保存されているデータがどのモデルに対応しているのかを管理するために、この「type」属性が使われます。 今回僕は、通常の属性として「type」属性を定義(つまりテーブルに「type」カラムを追加)していたのですが、単一テーブル継承が使う「type」属性とバッティングしちゃって例外が発生したみたい

  • accepts_nested_attributes_forの簡単なまとめ | 超ド素人のRuby on Rails挑戦日記

    一定期間更新がないため広告を表示しています

    accepts_nested_attributes_forの簡単なまとめ | 超ド素人のRuby on Rails挑戦日記
  • 「ActiveRecord」の基本とデータの参照

    それでは、マイグレーションファイルの内容を見ていきましょう。 先ほどのUserクラスの例では、rails gコマンドで次のようなマイグレーションファイルが生成されます。このマイグレーションファイルは、「usersというテーブルを作成する」というスキーマ変更に対応するとともに、「20110403005910」というスキーマバージョンを表しています。なお、このバージョンの数字は、マイグレーションファイルをコマンドで生成する際に日時をもとに自動で付与されます。 class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.string :name t.string :email t.date :birthday t.integer :number t.timestamps end end

    「ActiveRecord」の基本とデータの参照
  • ActiveRecordの更新系操作

    前回はActiveRecordを使った参照について解説しましたが、今回は登録、更新、削除などの更新系を中心に見ていきます。 前回の記事では、Ruby on Railsのモデル層を担当するActiveRecordの概要と参照系の操作について解説しました。今回は、登録、更新、削除などの更新系の機能を中心に見ていきます。 登録・更新の際には、モデルに不正な値が保存されないようにデータをチェックして、問題があれば保存しないようにする「検証」(Validation)の仕組みが走ります。この検証機能の背後には、ActiveRecordのコールバックという仕組みがあります。コールバックを使うことで、登録、更新、検証、削除処理の前後に様々な処理を追加できます。今回と次回の2回にわたって、ActiveRecordの更新系操作のやり方とともに、検証、コールバックについて詳しく解説していきます。また、検証メッセ

    ActiveRecordの更新系操作
  • has_many :bugs, :through => :rails: Active Record Query Interface 3.0

    I’ve been working on revamping the Active Record query interface for the last few weeks ( while taking some time off in India from consulting work, before joining 37signals ), building on top of Emilio’s GSOC project of integrating ARel and ActiveRecord. So here’s an overview of how things are going to work in Rails 3. What’s going to be deprecated in Rails 3.1 ? These deprecations will be effecti

  • ActiveRecordが提供するModel機能を理解しよう (2/3)- @IT

    ActiveRecordが提供するバリデーション機能を見ていきましょう。 ActiveRecord::Baseを継承して作成されたModelクラスでは、クラス中でvaridates_*という名前のクラスメソッドにより、インスタンス属性値が適合しているべき検証条件を定義できます。 前回作成したHitokotoモデルでは、すでに1件のバリデーション条件が定義されています。ソースコード(hitokoto.rb)を確認してみましょう。[Railsエクスプローラー]ビューの[モデル]にあるHitokotoをダブルクリックして、編集エリアにhitokoto.rbを表示します。 ここで使用されているクラスメソッドvalidates_presence_ofでは、引数として渡された名前の属性値が存在していること(blankでないこと)を定義しています。従って、この例ではHitokotoインスタンスは、hit

  • ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active Record Query Interface - PukiWiki

  • ActiveRecordを使ったソースコードを読もう (1/4)- @IT

    第3回 ActiveRecordを使ったソースコードを読もう 倉貫 義人 松村 章弘 TIS株式会社 SonicGarden 2009/1/28 優れたプログラマはコードを書くのと同じくらい、コードを読みこなせなくてはならない。優れたコードを読むことで、自身のスキルも上達するのだ(編集部) これまでの2回の記事で、Railsアプリケーションの基的な構成と、テスティングフレームワークであるRSpecを使ったソースコードのコードリーディングを行ってきました。今回は、RailsのキモでもあるDBアクセス処理の部分を扱うActiveRecordを深く掘り下げてコードリーディングを行います。 ActiveRecordとは、まさしく同名の“Active Record”というDBアクセスに関するデザインパターンを実装したライブラリです。データベースのテーブルをクラスとしてビジネスロジックを持たせ、テー

  • Ruby on Rails - ActiveRecord - — ありえるえりあ

    方針 Rubyを知っている前提です(前回の勉強会の資料 http://dev.ariel-networks.com/articles/workshop/ruby/) RDBの基礎知識が前提です なるべく手を動かして目に見える形で説明を進めます Ruby on Rails(以下、Rails)全体は巨大なので、ActiveRecord(ORM層)に話を限定します(Web層は次回) Webから切り離してirb or コマンドラインでActiveRecordを使います

  • OTN Japan - 今だからデータ・アクセスを真剣に考える! 第2回

    前回の「データベースことはじめ(前編)」では、システムの論理的な階層の中でドメイン層をどの様に実装するかということで、PoEAAのアーキテクチャパターンを元に見てみました。今回は、パーシステンス層のアーキテクチャパターン+αを見ていきます。 まずパーシステンス層を見る前に、今回の話題とは直接ではないですが、間接的に関わってくる層のサービス層に関して少し触れておきたいと思います。サービス層は、ドメイン層配下のビジネスロジックをユーザインタフェース層やアプリケーション層から利用するためのインタフェースとして機能します。一般的にトランザクションロジックやセキュリティロジック、ドメインロジックのワークフロー等のドメインロジックとは直接関係ないロジックを含むのみで、大きなドメインロジックを含むことは好ましくないとされる層です。 では、パーシステンス層です。ここまで、役割的には、データアクセスの実装を

  • 古いアプリケーションにRailsを対応させる

    最近オープンしたエミナルクリニックの徳島院がめっちゃ気になるなぁ。 医療脱毛なのにすごい安くていい評判も聞くけど、ほんとに痛くないのかな? 通っている人の口コミをみてみたいなぁー。 なんて気になったので、エミナルクリニックの徳島院についてSNSやネットで調べてみました。 そう思ってSNSを中心に調べてみたら、、、口コミや評判も良いじゃない♪ ちなみに、似たようなサービスや商品があるかも?なので、今回調べてみたのはこちらになります。 オープンしました! エミナルクリニックの徳島院ですが、すでにオープンしています!(2021年4月9日オープン済) もちろんですが、オープンしたてなんでめっちゃ予約が取りやすいです。 ただし!!人気のある医療脱毛院なので早めの予約が良いかも?!