2013-12-01から1ヶ月間の記事一覧

Rails4 モデル名等を変更

モデルもコントローラもビューもスペックのテストもつくったが、モデル名を変更したくなった。今回はCombinationsをTargetsに変更するものとする。 1.テーブル名を変更 コマンドプロンプトで下記を実行し、マイグレーションファイルを作成する。 rails g mig…

Rails4 ActiveRecordでINを使用したい場合、ハッシュで指定できる

ActiveRecordでINを使用したかった。想定したSQLは下記。 SELECT * FROM tests WHERE user_id IN (1, 2, 3) 最初は下記のように記載したが、もっとスマートな方法があった。 Tests.where("user_id IN (?)", [1, 2, 3]) 下記のようにハッシュで配列を指定する…

Rails4 rspecのテストでスタブで例外を投げる

テストでスタブでsave!で例外を投げるようにしたかった。 Recordクラスの下記のようなsave_recordという関数があったとする。 def save_record(user) begin self.transaction do record= self.new record.user_id = user.id record.user_name = user.name re…

Rails4 rspecによるスタブ、モックを使ったテスト

テストでスタブを使う必要があったので、スタブとモックのメモ。 スタブは、あるオブジェクトのメソッドが呼び出された時に、特定の戻り値を返すようにしたい場合に使う。 モックは、あるオブジェクトのメソッドがある引数で呼ばれたときに、特定の戻り値を…

Rails4 自作のエラークラスを作成する

システム独自のエラーを出したかったので、自作のエラークラスを作成することにした。最初はExceptionクラスを継承しようと思っていたが、Exceptionクラスはシステム関連の例外まで含んでいるので、アプリケーションレベルの例外のトップであるStandardError…

Rails4 validatesで整数とnilのみ許可する

バリデーションで整数のみに設定することは多かったが、nilも許可しないといけない状況になった。調べてみると、allow_nilで設定できるようだ。たとえば、numberに整数とnilのみ許可するには下記のように記載する。 validates :number, :numericality => {:o…