2015-02-01から1ヶ月間の記事一覧

33. キャンパス情報のセッション保持

キャンパス変更の受入テスト キャンパス情報はセッションに記録する。ここでは、キャンパス変更に関する受入テストを追加した。当初はメニュー内の直接リンクをクリックしていたが、Javascript を有効にしたため、メニューバーのリンクをクリックして、メニ…

32. Campus モデルと enum

複数形の登録 キャンパスのモデルである。これも同様であるが、一つだけハマリポイントがあった。generator で campus モデルを作成しようとしたら、campu の複数形と判断されてしまった。旧システムの情報を参考に config/initializers/inflections.rb に c…

31. コントローラのないモデルの移植

学年・学科など基本的に固定なデータのモデルは、特にコントローラを作成しない。これらを一括でテストおよび実装を移植する。 学年(Gakunen)モデルの定義 学年のマイグレーションは以下のようになる。honka = true に対して、gakunen が 1〜5、honka = fals…

30. モデルテストのためのメソッド群

1週間使って検索モジュールを設計・実装していた。かなり使い勝手がいいものができたので、近いうちに紹介する。今日は溜まりまくったモデル系のお話。モデルのテストのうち、属性や関連に関するものはテストをするためではなく、実装抜けを防ぐためのものに…

29. 受入テストの Javascript 対応

旧システムでは Rails の掟通り、edit, new などでページが遷移してしまい、自分が何の作業をしていたのかがわからなくなるという不満が多かった。そのため、最近作ったページは edit や new の画面も index や show と同じ内容を表示するような作り込みをし…

28. FactoryGirl を fixtures のように使う

モデルのテストを行うのにさまざまな条件の下でテストデータを作ることが必要になる。以前は、さまざまなテスト条件に合わせて、大量の fixtures を用意していた。しかしながら、テストデータをすべてのテストに適合するように準備することは非常に難しい。…

27. 権限管理のリファクタリング

今日から溜まりに溜まったモデルの話をしようと思っていたが、ページの描画などをしているうちに権限関係のメソッドが使いづらいことに気づいた。いろいろなことを考えてモデルやヘルパを先んじて作っているが、実際に使ってみるといろいろと不具合が出てく…

26. システム設定画面における view の記述

旧システムでもシステム設定画面はさまざまな権限用のメニューが沢山用意されていた。このため、非常に長いページになり、スクロールが必要であった。今回は、nav-tabs を使ってタブ表示を行う。これが一つ目の改定。また、これまでメニューの部分は以下の様…

25. パンくずリストへの権限の描画

現在のシステムで各ページが誰に見えているのかがわからないという問い合わせが多かった。今回は、コントローラに定数を記述し、それを確認することで権限を一元管理することにしている。前回、せっかくパンくずリストを表示したので、この部分に権限を表示…

24. locale の修正と DatabaseRewinder

locale 機能の修正 昨日書いた locale について、別のシステムを作っていたときに楽に書けていたことに気づいた。別のシステムではページのタイトルを以下のように記述していた。 %h1= t '.title' これは、view の中でパスを省略すると、view のパスが自動的…