タグ

2011年2月20日のブックマーク (17件)

  • has_many :throughなリレーションで中間テーブルをみつついい感じに絞り込みたい - moroの日記

    これまで新しめのアプリではMongoを使ってたんですが、近頃になってようやくActiveRecordをproductionでもりもり使っています。Arelいいですね。 で、題。こういう場合に、attendances.statusを見てeventsを絞り込みたい。これをかっこよく書くにはどうすればいいか。 class Person < ActiveRecord::Base has_many :attendances has_many :events, through: :attendances end class Attendance < ActiveRecord::Base belongs_to :people belongs_to :events # t.string :status STATUSES = %w[registered paid canceled attended abs

    has_many :throughなリレーションで中間テーブルをみつついい感じに絞り込みたい - moroの日記
  • ActiveRecordのソースコードを読む - (゚∀゚)o彡 sasata299's blog

    2010年06月25日00:18 Ruby ActiveRecordのソースコードを読む ハマったのがきっかけで ActiveRecord 2.3.5 のソースコードを少し読んだので簡単にまとめてみます。なお、ActiveRecord では 2.2 からコネクションプーリングが導入されています。 コネクションプーリングとは? データベースにアクセスする時、アクセスのたびに接続(コネクション)を確立するのではなく、あらかじめ一定数のコネクションを確立しておき、それを使い回す手法。データベースアクセスの負荷を減らすために用いられる。 それを踏まえつつ、検索をする場合の処理を追っていきます。例えば Hoge.find(:all, ...) とかしたらどうなるんでしょうか。 あ、その前に ActiveRecord 使うときって establish_connection が必ず呼ばれます。Rails

  • 予習 Rails3 (1) Arel - I am bad at math

    Rails3 では ActiveRecord の部分で Arel という関係代数モデルのモジュールが使われるということなので少しだけ予習しておく。 CREATE TABLE articles ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, title TEXT, body TEXT, author TEXT, create_date TIMESTAMP, update_date TIMESTAMP ); CREATE TABLE comments ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, parent_id INTEGER NOT NULL, title TEXT, author TEXT, mail TEXT, url TEXT, body TEXT, create_date T

    予習 Rails3 (1) Arel - I am bad at math
  • はてなブログ | 無料ブログを作成しよう

    南関東の「いろんなところから富士山が見える」状況に驚きつづけている 大阪から東京に引っ越して30年以上経つが、じわじわと蓄積されてきた驚きがついに閾値を超えたので筆を執った次第である。正確には「ポメラ DM250を起動してmenuキーを押して新規作成を選んだ」のだが、ポメラを持っていなかったら、さらに驚きが蓄積されていないと…

    はてなブログ | 無料ブログを作成しよう
  • factory girlを使ってみようと思う - rochefort's blog

    以前から試してみたかったfactory girl。 こないだ試した twitter-auth at master のテストで使われていたので、これを機にinstallしてみた。 (他にもfakewebやらremarkable_railsなど、いろいろ気になるのが使われてる。) 名前もなんかいいよね。girlって付くと。 thoughtbot's factory_girl at master - GitHub 参考 has_many throughでの例が非常に分かりやくて参考になります。 has_manyなフィクスチャを書くのに疲れたらFactory Girlがオススメ! - func09 バージョン readmeよく見たらいろいろバージョンがあるらしい。 現時点では下記のよう。 (あと、いろいろforkされててfactory_boyっつーのもあるらしい。気になる) factorygirl

    factory girlを使ってみようと思う - rochefort's blog
  • Vimでファイラー兼ランチャーなunite.vimプラグインを使う - アインシュタインの電話番号

    ちょっと前から名前は見かけていたんだけど、何をするプラグインなのかよく分からなくて見送っていた。Twitterでもつぶやいたけど、もっと早く導入しておけば良かったと、ちょっと触ってみただけで思った。 unite.vim - Unite all sources : vim online どんなことができるかについては、作者さんが公開しているこのプレゼン資料がわかりやすい。このプラグインについてほとんど知らない自分が、前述のプレゼン資料を読んで、18ページ目に書かれている:Unite buffer file file_mruを実行してみて受けた印象は、 Vim用のコマンドラインランチャー(Windowsで言えばfenrir、Macで言えばQuicksilver)のようなもの ってかんじ。でも、色々なブログでの紹介を見ていると、ランチャー機能だけにとどまらずかなり広い操作をカバーしており、拡張性

    Vimでファイラー兼ランチャーなunite.vimプラグインを使う - アインシュタインの電話番号
  • unite-outline まとめ - Alone Like a Rhinoceros Horn

    unite-outline の関連エントリが増えてきたのでまとめ。自演乙。((ちなみに、私は長島☆自演乙☆雄一郎選手のファンです ( ̄ー ̄)bグッ!)) unite.vim で簡易アウトライン機能 一発目の紹介記事。スクリーンショットを随時追加している。 unite-outline の outline info の仕様を拡張 outline info の create_heading()関数が辞書を返せるようになったことについて。曰く、create_heading()関数はその見出しが具体的にどう表示されるかについて、関知する必要はない。 unite-outline に特定の種類の見出しを非表示にする機能を追加 g:unite_source_outline_ignore_heading_types という、長い名前のオプション変数を追加した経緯やら。 unite-outline が見出し

    unite-outline まとめ - Alone Like a Rhinoceros Horn
  • Vimでunite.vimプラグインを使い始めて一週間 - アインシュタインの電話番号

    unite.vimには気付かなかったことや使い方が変わったところなどがちらほらあったので備忘録。以下要点。 「起動時にインサートモードで開始」はONにするべきだった インサートモードから<C-u><C-h>でunite.vimを終了できる <C-m>で一番上に表示されているパスを確定(補完)できる <C-w>を単語単位からパス単位で削除するように変更した 「起動時にインサートモードで開始」はONにするべきだった 初日の記事では「起動時にインサートモードで開始」はOFFのほうが使いやすそうとか書いたけど、他の人が結構ONにしている理由がなんとなくわかった。OFFのほうが良いと思った一番大きな理由は「インサートモードじゃリスト上をjkで移動できないじゃんJK」だったんだけど、ヘルプを読んでいたら、インサートモードでも多くの操作ができるようデフォルトでキーマッピングがされていた。この表はノーマル

    Vimでunite.vimプラグインを使い始めて一週間 - アインシュタインの電話番号
  • Rails 3.x 時代のテストフレームワーク

    Rails 1.x の頃、テストと言えば Test::Unit であり、Fixtures でした。 この2つがあったからこそ、私は Rails を好きになったんだと言えます。 Test::UnitRuby 標準ライブラリの1つですが、Rails はそれを巧妙に拡張して、自らと一体化させていました。 Rails は Web アプリケーションを開発するためのフレームワークであり、同時にその Web アプリケーションをテストするためのフレームワークでもあったわけです。 Fixtures は、テストの対象となるサンプルデータをデータベースに投入するためのツールです。 テストを開始する時点でのデータベースの状態を YAML 形式あるいは CSV 形式で記述しておくと、Fixtures はテストを行う直前にデータベースをその状態に戻してくれます。つまり、Fixtures によって再現性のあるやり

  • Modelのトランザクションを活用しよう Ruby on Rails Pro

    Ruby on Rails Modelとは、OracleMySQLなどのデータベースとのデータのやり取りを行える。Ruby on Rails ModelではRuby on Railsのmodelの基礎的な使い方を多くのサンプルを交えて紹介。また、データベースへデータを登録する際の入力規制の基礎、複数のテーブルとの連携の基礎もサンプルを紹介しながら説明。主キーとなるid名を変更するなど特殊な設定も紹介。 データベースを作成しよう MySQLへデータベースを作成しよう production,test,developmentすべてのデータベースを作る Modelを生成しよう Modelを生成しよう マイグレーション(migrate)の仕組みを理解しよう(前編) マイグレーション(migrate)の仕組みを理解しよう(後編) マイグレーション(migrate)をproductionのDBへ実行さ

  • blog.sowatchasayin: Fakerとfactory_girlで偽物大量生産

    Fakerとfactory_girlで偽物大量生産 適当なデータを作るときのお供に。 factory_girlと組み合わせて便利でした。 これが Factory.define :message do |f| f.title Faker::Lorem.sentence f.body Faker::Lorem.paragraph end こうなります! >> y Factory.build :message --- !ruby/object:Message attributes: created_at: body: Quasi ab fuga reprehenderit quia. Nostrum laud...(以下略) title: Alias dolor velit ut et vitae magnam aut non. updated_at: recipient_id: sender_

  • [Rails] RSpec でコントローラのテストを記述する例 - それはBooks

    Ruby on Railsで、RSpec を使ってコントローラのテストをしたテストコードの例を載せておきます。 環境は、Ruby on Rails3、Ruby1.9.2 を使っています。RSpec の使い方の参考になれば幸いです。 RSpec で Controller のテストを書いてみた Ruby on Rails3, Ruby1.9.2 で Controller クラスの RSpec を書いてみました。 Controller でテストしたのは次の3点です。 ルーティングが合っているか 処理が通って 200 OK を返すか 処理が通って期待通りの結果(Blog が保存されることによって count がひとつ増える)になっているか # coding: UTF-8 require 'spec_helper' describe BlogsController do describe "GET

  • 連載記事 - Ruby on Rails with OIAX

    新着記事 『Ruby on Rails 5.0 初級④: HTMLフォーム(後編)』紙版(ペーパーバック版)が出ます (2017/08/04) WordPressRuby on Rails はどこがどう違うのか (2017/04/19) 『実践Ruby on Rails 4』環境構築手順 for macOS(2017年版) (2017/01/24) 『実践Ruby on Rails 4』環境構築手順 for Windows (2017年版) (2017/01/24) Kindle『Elixir/Phoenix 初級①』を出版しました (2016/11/25) Kindle向けに技術書を3冊出してみて思ったこと (2016/06/08) 問題03の解答と解説 (2016/03/21) 「その他」用のテキスト入力欄を持つ選択式入力欄 (2016/02/08) 問題02の解答と解説 (2

  • brass.to - a really cool domain parked on Park.io

    The domain name brass.to is being parked on Park.io. Contact the domain owner to make an offer right now...

  • gem管理の新標準ツール"Bundler"のTips - 昼メシ物語

    Bundlerは、rubygemsのラッパーです。Rails3のgem管理に採用されています。 Bundlerを使うことで、 このgem、手元にはインストールされているのに、番環境にインストールされてない! 開発環境にgemを入れまくったら、プロジェクトにどのgemが必要なのか分からなくなった! みたいな問題を解決できます。 詳しくは公式サイトをご覧ください。 今日はそんなBundlerについて色々分かってきたので、Tipsをいくつか紹介したいと思います。 前提知識 この記事は、このへんが理解出来ていることが前提です。 Bundler: The best way to manage Ruby applications Rubygems に /usr/bin を触らせないためには gem をユーザーディレクトリで運用する++ - きたももんががきたん。 Bundlerは1.0系以降を使おう

    gem管理の新標準ツール"Bundler"のTips - 昼メシ物語
  • text.ssig33.com - このサイトを Sinatra で書き直した。

    このサイトを Sinatra で書き直した。 もともと Rails で書かれていたのだが、この規模のサイトに使うには Rails はいかにも重量級すぎるので。 Sinatra ならば 1 ファイルで完結する。 Sinatra で開発する時に、 O/R マッピングには Sequel とか DataMapper とかが使われることが多い印象があるのだが、今回は ActiveRecord3 を使ってみた。 ActiveRecord3 はメソッドチェインでクエリを組み立てることが出来て非常に便利だし、 Rails3 でこのサイトを作った時のコードを使い回せる。 従来では「Rails を使わない理由」の中で最も大きなものに「ActiveRecord と密接に接合しており他の DBI を使いたくても使えない」というものがあったと思うが(つまりそれだけクソだった)、 ActiveRecord3 は Ru

    lam_bda
    lam_bda 2011/02/20
    Sinatraさんまじすげーっす!
  • Arelで色んなSQLを組み立ててみる - ryopeko の何か

    (この記事は Ruby Advent Calendar jp:2010の 15 日目です。前日は tomohiro68 さんでした。) Arelとは Arelの概要については@a_matsudaさんのgihyoの記事を参照してください。 http://gihyo.jp/dev/serial/01/ruby/0043 はじめに 扱うRDBSQlite3です。 例として以下のようなスキーマを持ったテーブルを取り扱い、進めていきます。 class CreateBooks < ActiveRecord::Migration def self.up create_table :books do |t| t.string :name t.string :category t.timestamps end end def self.down drop_table :books end end 基的な

    Arelで色んなSQLを組み立ててみる - ryopeko の何か