タグ

activerecordとRailsに関するramtigaのブックマーク (7)

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

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

    Railsのリレーションのオプションでできること、まとめてみた。 - ハッカーを目指す白Tのブログ
  • Railsで変更前の値、型変換前の値、などなど | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 ActiveRecord は使い勝手の良いライブラリです。 ActiveRecord::Base クラスを継承するだけで、ほとんど設定することなく、その恩恵に預かることができます。 今回は、そのありがたい恩恵の中から、属性に代入した値に関する部分をピックアップします。 具体的には、型変換前の値が取得できること、属性の変更前の値を知ることができることなどをご紹介します。 例として User というモデルがあり、年齢を数値型で保持する age という属性があるとします。 Rails の ActiveRecord はデータベースにおけるカラムの型に応じて、代入された値を型変換してくれます。 例えば、数値型の age に "123" という文字列を代入したとします。

  • Rails – 親子テーブルを一度に更新する方法 | 株式会社田村倉庫

    上記のような一画面に基情報(宛先、住所)と複数の明細情報(物品名、数量)がある画面で入力された情報を親子関係にある基テーブル(発送テーブル)と明細テーブル(物品テーブル)に同時に登録したい場合が業務アプリではけっこうあると思います。 Railsではこのようなケースに簡単に対応するための便利機能が用意されています。具体的にはモデルでaccepts_nested_attributes_forという設定を、ビューでfield_forメソッドを利用します。この機能を利用すると以下の2つメリットがあるので是非活用することをオススメします。 ソースコードが短くてすむ ⇒ 後述しますが、特にコントローラー側の記述量は激減します。 明細データへのバリデーション結果が画面にキレイに表示できる ⇒ 親子関係をRailsに認識させることで明細データのバリデーション結果を表示するロジックを個別に実装する必要が

    Rails – 親子テーブルを一度に更新する方法 | 株式会社田村倉庫
  • Rails の ActiveRecord モデルテストの書き方ガイドライン - passingloopの日記

    このエントリでは,Ruby on Rails (以下 Rails)の ActiveRecord モデルテストについて,1) どこの何をテストすればよいか,2) どのようにテストを書けばよいか,のガイドラインを示します.このガイドラインは Rails 公式のものではなく,id:passingloop が使っている私的なものです.疑問・質問・批判・間違いの指摘はページ下部のコメント欄までお願いします. はじめに Rails は TDD/BDD サポートが充実した Web アプリケーション開発フレームワークです.Rails で使える Test::Unit や RSpec などといったテスティングフレームワークの使い方に関する解説も豊富にあります.しかし,「どこをどうテストすればよいのか」についての解説は,「使い方」の解説と比較して少ないように思います.もっとも,テスト一般についてどう書くかはアプ

    Rails の ActiveRecord モデルテストの書き方ガイドライン - passingloopの日記
  • 俺のRails力が火を吹くぜ! RailsのActive Record発行方法もろもろ。その1。 | srockstyle

    この投稿は書いてから4年とかたっててとりあえず書き方もやばいので修正中です! こんにちは。@srockstyleです。Railsつかってますか? Active Record使ってますか? スピードはともかくなんでもかんでもActive Record挟めばクエリが楽になげれていいですよね? Railsライクをうたうフレームワークも増えて久しい昨今ですし、とにかくRailsのActive Recordは学ぶのにすごく便利だと思います。 今日はそいつらをちまちまと基的なことをメモっぽく並べていきます。対応バージョンは4系です。早速書いていきましょう。 前提条件 流行に乗って、音楽アーティスト情報を入れた以下のテーブルがあるとします。 artists albams songs これを呼び出すモデルさんが以下です。 Artist Albam Song 準備オッケーです。いっぱいあるのでテンポよく。

    俺のRails力が火を吹くぜ! RailsのActive Record発行方法もろもろ。その1。 | srockstyle
  • ActiveRecord4でこんなSQLクエリどう書くの? Arel編 | Webシステム開発/教育ソリューションのタイムインターメディア

    ActiveRecord4でこんなSQLクエリどう書くの? Merge編 では、関連先のscopeを使うことができるmergeを紹介しました。mergeを使う事で、変更に強いクエリを美しく組み立てることができました。 今回は、ActiveRecord4で書きにくいSQLクエリたちを紹介します。 書きにくいクエリとは、具体的には以下のものがあげられます。 比較演算ORlikeleft outer joinunionサブクエリexists ActiveRecordでこれらのクエリを組み立てる場合、どうしても美しくない(SQL文字列をべったり書いてしまうような)書き方となってしまいがちです。 この処理を美しく書くためには、ActiveRecordだけの機能では足りず、ActiveRecordが内部で使っているArelというライブラリを使う必要がでてきます。 今回は、Arelを使って華麗にSQL

    ActiveRecord4でこんなSQLクエリどう書くの? Arel編 | Webシステム開発/教育ソリューションのタイムインターメディア
  • モデル(model) | Railsドキュメント

    モデルについて 説明 モデルとはアプリケーションが扱うデータや処理を表現する仕組みのこと モデル名とテーブル名の規約 英大文字から始まる 英数字のみ 単語の区切りでは、先頭文字を大文字 単数形の名詞 Entry UserComment ファイルはapp/modelsディレクトリに格納 ファイル名は、モデル名の単語区切りを「_」にし、すべて小文字にしたもの app/models/entry.rb app/models/user_comment.rb 命名規則 種類 説明 例

    モデル(model) | Railsドキュメント
  • 1