libro
www.tuyano.com
初心者のためのRuby on Rails3入門

View(ビュー)を利用する (4/5)

作成:2012-01-23 08:01
更新:2012-02-16 15:10

■パラメータによる値の受け渡し

ControllerからViewへ値を受け渡すのは出来ました。では、Controllerに何らかの値を受け渡してアクセスするにはどうすればよいのでしょう?

いろいろやり方はありますが、もっとも単純なのは「URLパラメータとして値を渡す」というものでしょう。これは、URLの末尾にクエリー文字を使ってパラメータを追加する方法です。例えばこんな具合ですね。

http://○○/アクション?パラメータ=値……

多くのサイトで用いられていますから見たことはあるでしょう。こうすることで、各種の値を一緒に送ることができるわけです。後は、Controlllerのアクションメソッド側で、其の値を取り出すことさえ出来れば、Controllerへと値を渡すことが可能になります。

下に簡単なサンプルを掲載しておきました。先ほどの例で、indexアクションメソッドを修正したものです。Viewテンプレートは修正の必要はありません。修正をしたら、以下のアドレスにアクセスをしてみてください。
http://localhost:3000/helos/index?id=123
ページにアクセスすると、「あなたのIDは、123です。」というようにメッセージが表示されます。ここでは、index?id=123というようにして、id=123というパラメータをあわせて送っていますね。これをindexメソッド内で取り出しているわけです。
id = params['id']
これが、その部分です。送られたパラメータは、このようにparamsという連想配列にまとめられます。ここからパラメータ名の値を取り出すだけで必要なパラメータの値が得られるのです。実に簡単! id=で送信する値をいろいろと変えて動作を確かめてみましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※helsos_controller.rb

# coding: utf-8

class HelosController < ApplicationController
  
  def index
    id = params['id']
    @msg = "あなたのIDは、" + id + "です。"
  end
  
end

※関連コンテンツ

「初心者のためのRuby on Rails3入門」に戻る