初めてのRailsアプリ(その2)
railsubject_02
初めてのRailsアプリ(その2)
HABTMとかHMTとか。この略称に関しては、バック・トゥ・ザ・フューチャーはBTTF、リターン・トゥ・フォーエバーはRTFだと知った時なみに衝撃を受けてます。
はじめに
アプリは前回(その1)からのひき続きです。
2. has_many throughアソシエーション
前回はhas_and_belongs_to_many(HAB™)で組もうかと思ってたが、has_many through(HMT)の方が拡張性が良いとらしいので、こちらを勉強する。HMTの方が直感的にも素直。 参考サイト
ER図
今回はここ
変更点
前回より以下の点を変更する。
モデル
- has_many throughの関係を記述
- subject_idsというアクセッサを追加
- name_contentというgetを追加
- 本筋ではないが、サンプルアプリをわかりやすくするため
コントローラ
変更なし。(すげー)
ビュー
- _form
- f.selectを追加
- 選択範囲は、全てのSubject
- 複数選択を許容(:multiple => true)
- 選択肢の表示にはname_contentを利用
- show
- @groupを通してsubjectsにアクセス
- 中間モデルsubject_groupsは意識していない
- 表示にはname_contentを利用
- @groupを通してsubjectsにアクセス
完成形
3. jQuery on Rails
UIをもう少し拘りたいので、jQueryを利用する
jQueryの導入
'jquery-rails'と'jquery-ui-rails'をgroup :assetsの中に入れる。
application.jsおよびapplication.cssでrequireする。
assetsをプリコンパイルしておく。
rake assets:precompile
試しにdatepickerを利用してみる。
こんな感じ
終わりに
次にやりたいことは以下
- groupでsubjectを選択する際のUI高度化
- mailでメールを送る
- uploadでファイルをアップロードする