* MVC連携 [#nfc3c358] #contents ** Viewの制約 [#cf92a17b] Viewはデザインを決めるものであり、ロジック制御を含むべきではない。 RoRのビューでは、Rubyコードの埋め込みが可能だが、極力コードを埋め込むことは避ける。 例えば、Viewからクエリを発行したりしてはならない。Controllerにより予め発行しておくか、Modelで内部的に処理する必要がある。 例えば、Controllerで会員の一覧のModelインスタンスをViewに渡したとする。つまり、Controllerで、 def list @member = Member.find(:all) end としているとする。そして、Viewで、会員のスケジュールのうち最近登録した5個を表示したいとする。その場合は、Viewにスケジュールを検索するコードを書いてはならず、MemberのModelに、次のようなメソッドを追加すれば良い。 def get_schedule(limit) Schedule.find(:all, :conditions => "mid = #{ self.id }", :limit => limit) end Viewでは、このメソッドを呼び出せば良い。例としては次のようになる。 <ul> <% for i in @member.get_schedule(10) %> <li><%= i.title %></li> <% end %> </ul> ** Modelの役割 [#hce6457b] Modelは、一つのデータを定義するだけでなく、データ間の関係も定義する。 ControllerやViewで、関係するデータを取り出す処理を書くべきではない。