スポンサーリンク

2015年5月18日

Sinatraで入力フォームのデータを取得する。

タイトル:Sinatraで入力フォームのデータを取得する。

目的:htmlのinputタグ(テキストボックス)で入力されたデータを取得し表示する。

実施環境:
OS:Windows8.1
Ruby:v2.2.2
Sinatra:v1.4.6
Haml:v4.0.6

ディレクトリ構造:
作業ディレクトリ
|-sinatra_start.rb(ファイル)
|
|-views(ディレクトリ)
    |-index.haml(ファイル)
    |-request_print.haml(ファイル)

目次:

  1. 入力データを取得(sinatra_start.rb)
  2. 入力フォームを作成(index.haml)
  3. 入力データを表示(request_print.haml)
  4. 説明&実行

以前、以下の記事を閲覧して頂いたことがある方は、
ソースコードを追記/修正する形で実施すると楽です。

1.入力データを取得(sinatra_start.rb)

1.1
画面側で入力されたデータを取得する部分を記述する。

ソースコードは以下の通り作成した。

2.入力フォームを作成(index.haml)

2.1
画面に入力するための入力フォームを作成する。

ソースコードは以下の通り作成した。

3.入力データを表示(request_print.haml)

3.1
入力されたデータを画面で確認する部分を作成する。


ソースコードは以下の通り作成した。


4.説明&実行

4.1
Ruby側についての説明

データの取得の仕方は、
「params[:inputタグのnameの値]」で取得できる。

また、直接(?)Webリクエストの内容からも取得できた。
「request[:inputタグのnameの値]」でも取得できた。

現状、使い分けがどうなっているのか分からない。
しかし、Sinatraの本家サイトではルーティングの説明の後に
paramsでデータを取得をしている部分があるので、
おそらくparamsを使っていれば問題はないと思う。

4.2
Haml側についての説明

index.hamlについての説明。
Hamlでは、inputタグを以下のように記述する。
「%input{:type => "text", :name => "name"}」

typeにinputの種類(今回はテキストボックス)を、
nameにはparamsで取得するための名前を設定している。

inputタグの詳しい設営はhtmlのドキュメントか説明サイトを参照にして下さい。

request_print.hamlの説明は表示のみなのでなし。

4.3
以下のコマンドで実行する。
コマンド: ruby sinatra_start.rb

画面下部に入力フォーム3つとボタンが出ていることを確認し、
適当な文字を入力フォームに入力する。
送信ボタンを押下する。

ページ遷移し、入力した値が表示されていれば問題ない。

以上!!


参考にさせて頂いたサイト
Sinatra本家(日本語訳)

管理人の独り言...
これで、パーツは概ね問題ないかな...?
まだ、DBやらActiveRecordだとかあるけど、
修正でプログラムすればいいし大丈夫だろう。

というわけで、ようやっと掲示板の作成に取り掛かれます。
内容的には、Webの基本中の基本的な内容なので、
あまり過度な期待はしないで下さい。

人気の投稿