「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マッピングを担当します 。このライブラリの名前は
RailsでSQLの条件を扱う、Condition Builderプラグインが便利です。 最新版(1.1) http://blog.inquirylabs.com/2007/06/28/condition-builder-11/ 説明 http://blog.inquirylabs.com/2007/01/04/condition-builder-10-released/ 以前の記事 http://blog.inquirylabs.com/index.php?s=condition+builder&submit=Search Conditionクラスのメソッド一覧 通常、ActiveRecordに条件を指定する場合、:conditionsオプションで ["a = ? AND b = ?", 1 , 2] のような配列を指定します。この配列の構築をサポートしてくれるのがConditionBu
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
※ドキュメントを読みながらこんなもんかな?とやってみたやつなので問題あるかもしれません。何かあればコメント頂けると嬉しいです。 例えば、DBからデータを取り出して逐次メールを送信する場合。 よく知られているようにメールの送信はコネクションの確立やSMTPサーバの処理などの待ち時間が長く、逐次処理をしていると無駄が大きすぎる。 処理を並列化して、あるメールの送信待ち時間を他のメールの構築等に充てて無駄をなくすことを試みる。 環境 Ruby 1.8.6 Rails 2.1.0 PostgreSQL 8.3 処理の並列化 Thread.newを使う。単純に実装すればこんなかんじ。 # 未送信のレコードをそれぞれ別々のスレッドで処理するサンプル threads = [] mails = find(:all, :conditions => ["sent = ?", false]) mails.eac
_ [Rails] validates_uniqueness_of は信頼できない ActiveRecord のトランザクション処理を調べてみているのだが、 並行処理すると validates_uniqueness_of を破れるようだ。 # db/schema.rb: ActiveRecord::Schema.define(:version => 1) do create_table "users", :force => true do |t| t.column "login", :string end end # app/models/user.rb: class User < ActiveRecord::Base validates_presence_of :login validates_uniqueness_of :login, :case_sensitive => false
Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. ActiveJax is a Rails plugin developed by Nicholas Schlueter that acts as a bridge between ActiveRecord and Prototype-backed JavaScript. This means you can call ActiveRecord model methods from JavaScript using AJAX. Example: ActiveJax.Author.find_by_name("Nicholas Schlueter").each(function(author) {alert(author.name);}); I
Railsの勉強がしばらくストップしてしまったので、今日はビデオを見てお勉強。Rails Envyの「ActiveRecord Tutorial」は長さも25分とちょうど良いし、「ActiveRecordとはなんぞや」を具体例を交えて簡潔に教えてくれるのでとても良い勉強になる。 英語だが、冒頭の部分を乗り越えればあとはプログラミングの話なので、日本人にもそれほど難しくないはず。念のため、オープニングの部分のみ、超訳しておいた。 ActiveRecordのアイデアは、いったいどこから来たのか? まずは"Active Record"の意味から (ActiveRecordではない点に注意) "Active Record"とは、デザイン・パターンの一つ。 どうやってデータベースにアクセスするか? SQLにプログラムから直接アクセスする方法もあるが...ちょっと不便 データベースのテーブルをオブジェ
conditions target proxy_XXX proxy_XXX は今のところは owner, reflection, target の3つだけだけど、将来拡張される恐れがあるので "proxy_" は使わない方がいいよ。 ● 保護者の方へ 平素より、ActiveRecordをご愛顧賜り、誠にありがとうございます。AR はその名の通り ActiveRecord パターンを利用しており、データへのアクセスを便利にするためにカラム名のアクセサメソッドが自動的に作成されます。従って、RubyもしくはARの既存のメソッド名と競合すると誤動作する可能性がありますので、お子様がご使用になられるカラム名には十分ご注意下さい。 これらは、script/console にて以下のコードで直接確認することができ、これまでに以下の179種類の予約語が確認されています。 script/console >
acts_as_paranoid このプラグインを導入すると、削除する際に、実際に行を消すのではなく、その行の deleted_at カラムに、削除の時間が記録されるようになります。 検索時にも、findで生成されるSQLのWHERE節に、以下のような条件が自動的に付加されます。 (users.deleted_at IS NULL OR users.deleted_at > '2007-01-21 12:27:07') この条件を見ればわかりますが、削除予約といった使い方もできます。 フラグを条件に加えるのって、ついつい忘れてしまいがちなので便利です。 find_with_deleted メソッドで削除されたものも検索対象になります。 使い方は簡単。 まずはインストール。 ./script/plugin install acts_as_paranoid マイグレーションを記述。 clas
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
WillPaginate Pagination is just limiting the number of records displayed. Why should you let it get in your way while developing, then? This plugin makes magic happen. Did you ever want to be able to do just this on a model: Post.paginate :page => 1, :order => 'created_at DESC' … and then render the page links with a single view helper? Well, now you can. Some resources to get you started: Your mi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く