Rails

active_decorator のdecoratorをrspecでテストする方法

active_decorator は便利なのですが、rspecでテストが上手く書けなくて、書き方を調べていた。 ただ、web上に情報が無く・・・ あ…ありのまま 今 起こった事を話すぜ! 「おれは decoratorのspecを書こうとしていたと 思ったら いつのまにかactive_decorator…

Gruffをruby1.9.3 + Railsで動くようにする

ruby 1.9.3 だとZeroDivisionErrorで動かなかったので、動く方法を調べた 参考ページ GruffがZeroDivisionErrorで動かない - 発声練習 http://d.hatena.ne.jp/next49/20120516/p2 解決方法 ググったら解決方法は色々と出てくるけど「gemのソースを直接変更す…

Railsで複数データベースを扱えるBanana

初めてgemを作って、RubyGems.orgで公開してみました。 ソースはGithubに置いてあります。 これは何? 1つのrailsアプリで複数データベースのマイグレーションを実行できるようにするgemです。 gem入れて、設定しておけば普段どおり rake db:create, rake db…

railsを少しずつ勉強する - 2. シンプルなブログ

前の記事の続きです。 シンプルなブログwebアプリを作成していきたいと思います。 シンプルなブログ の仕様 記事を新規作成、編集、削除ができる 記事に対して、コメントを新規作成、編集、削除ができる モデルの設計 ブログ記事とコメントのモデルを設計し…

railsを少しずつ勉強する - 1.1. 環境構築(追記)

前回の記事の続き。書き忘れがあったので。。。 Ubuntuのホームディレクトリのフォルダ名を英語にする $ LANG=C xdg-user-dirs-gtk-update これで「ダウンロード」のフォルダ名が「Downloads」のように変更されます。 VMware Tools のインストール VMware Pl…

railsを少しずつ勉強する - 1. 環境構築

railsを勉強するためにVMwareにUbuntuを入れる所から、環境構築の手順をメモ。 注意 下記にあるソフト類のインストール手順はあくまでも、2012/6/27 現在の方法です。 同じような環境を作るときは、各ソフトの公式サイトのインストール方法なども確認するこ…

RSpecでArelのメソッドチェインをスタブにする

テストでメソッドチャインできるメソッドをスタブにする。 describe BlogsController do before do(:all) u = User.new User.stub_chain(:where, :limit, :order).and_return(u) end end こういう書き方も出来る describe BlogsController do before do(:all…

テスト対象のControllerの親クラスのfilterをskipする

テスト対象のControllerのActionのみをテストする時に便利。 describe BlogsController do before do superclass = controller.class.superclass super_filters = superclass._process_action_callbacks.map(&:filter) controller.class.skip_filter *super_…

railsで作る簡単な本棚アプリ (2)

railsで作る簡単な本棚アプリ (1) の続き。 新規のユーザを作る。 rails serverを起動させた状態で、http://localhost:3000/users を開く。 "New User"のリンクをクリックして、新規ユーザを作る。 新規の本を作る。 ユーザと同じ要領で、http://localhost:3…

railsで作る簡単な本棚アプリ (1)

前回の記事 で書いたdefault_scopeとunscopedの例を試すために、簡単な本棚アプリを作ってみた。 環境 rails 3.0.7 rspec 2.6.0 rspec-rails 2.6.1 rails new 本棚アプリを作る rails new bookshelf -Tテストはrspec使いたいので、-Tオプションを指定する。 …

railsのdefault_scopeとunscoped

DBの論理削除*1を使う場合、default_scopeを使うと便利。 論理削除ではないが、簡単な例を下記に書いておく。 default_scope default_scopeをこのように定義しておく。 class Book < ActiveRecord:Base default_scope where(:R18 => false) end すると、 Boo…

RubyとRailsを使っていて、覚えたnilに関するまとめ

nilや例外に関する備忘録。 下記の記載はrails consoleで確認。 ActiveRecord 関連 「例外が発生する」パターンと「IDが見つからなければnilを返す」パターンを使い分ける必要がある。 find User.find(1) # => #<User id: 1, name: "sinsoku"> User.find(999) # 存在しないid # 例外 Activ</user>…

Rubyを使い始めた (2) - Rails3のArelの例

参考ページ Arel の概要は技術評論社のページを参照。 Ruby Freaks Lounge:第43回 Rails 3を支える名脇役たち その1 - Arel -|gihyo.jp … 技術評論社 はじめに サンプルとして、下記のようなModelとデータベースを作成してある。 $ rails g model book nam…