TOPシステム開発> Railsのビュー/アクション連係
徹底比較!!Ruby on Rails vs Javaフレームワーク
徹底比較!!Ruby on Rails vs Javaフレームワーク

第2回:JSFとRailsで比較(前編)

著者:DTS  五座 淳一   2006/9/6
前のページ  1  2  3  4
Railsのビュー/アクション連係

   Railsでは、JSFのようにビューの入出力値を受け渡すための入れ物を用意する必要はありません。

   したがって、ビューの入出力値を取得するために記述するコードはごくわずかです。ビューに値を渡す方法、ビューに入力された値を取得する方法の2つにわけて説明します。

   まずはアクションの値をビューに渡す方法です。アクションの値をビューに渡すには、@からはじまる変数はインスタンス変数を使います。この変数に格納した値はビューで参照することができます。

   次に示す例は、@nameというインスタンス変数に名前を格納させ、格納した名前をビューで表示させています。

アクションからビューに値を渡す
class GreetController < ApplicationController
   def hello
      @name = "田中"
   end
end

ビューにてアクションから渡された値を使う
<%= @name %>さん こんにちは!

   もう一方が、ビューの入力値をアクションに渡す方法です。ビューの入力値は、paramsというハッシュオブジェクトに格納されます。

   次に示す例は、テキストフィールドに入力されたタイトル名をparamsオブジェクトから取得しています。

ビューの入力値をアクションに渡す
<%= start_form_tag :action => 'add' %>
   <p>タイトル<br/>
   <%= text_field 'book', 'title' %></p>
   <%= submit_tag 'Add' %>
<%= end_form_tag %>

アクションにてビューから渡された値を使う
class BooksController < ApplicationController
   def add
      title = params[:book][:title]
   end
end


ビュー/アクション連携の比較結果

   ビューとアクション間の値の受け渡しについては、両者を密結合にすることで、JSFよりも格段に少ない記述量で表現することを可能にしています。

   密結合というと変更に弱いというイメージが先行してしまいますが、Railsの場合はRuby言語の柔軟性、特にJavaにはない強力なリフレクションを使うことで密結合でも変更に充分対応できるという特長を持っています。


次回は

   今回は、RailsとJSFでアーキテクチャとビューに関して比較してきました。次回は、ビューヘルパーとバリデーションに関して比較し、実際の作業ではどのような差があるのかを見ていきます。

前のページ  1  2  3  4


株式会社DTS  五座 淳一氏
著者プロフィール
株式会社DTS  五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


INDEX
第2回:JSFとRailsで比較(前編)
  はじめに
  ルーティング
  Railsのビュー
Railsのビュー/アクション連係