Ruby on Railsを触りだして数日間。
やっとスタート地点に立てたw
Ruby on Railsフレームワークは、超簡単にWebアプリが作成できるが、
そこからどうしたらよいか、とても困る。
そこで少しずつ出力しながら作成していこうと思う。
では最初に、テンプレートとなるフォーム画面から作成してみた。
あらかじめデータベースに「table_name」というテーブルを作成していることが前提だ。
あと、「table_name」のテーブル内に「link」というカラム名が存在することも前提だ。
views/table_name/parse.rhtml
<%= start_form_tag :action => ‘html_parser’ %>
<%= text_field ‘table_name’, ‘link’ %>
<%= submit_tag “パースする” %>
<%= end_form_tag %>
<%= link_to ‘一覧へ戻る’, :action => ‘list’ %>
表示のイメージは、ただテキストフィールドが1行あって、サブミットボタンが一つあるのみ。
次にコントロールする側のメソッド追加を行なうわけだ。
まず、どういうページ移行をするか解説する。
1.「http://localhost:3000/table_name/parse」というURLに接続すると、フォーム画面へ移行する。
2.フォームに文字列を入力し、「http://localhost:3000/table_name/html_parser」に値を送る。
3.html_parserメソッド内で受け取った値を表示する。
まぁ、テストを行なうだけで、特に処理を行なうというわけではない。
これを元にまず「parse」メソッドから作成する。
controllers/table_name_controller.rb
# ただ初期化して、フォーム画面へ移行するだけ。
def parse
@table_name = TableName.new
end
def html_parser
# parse.rhtmlからパラメータ「table_name」を受け取り、@table_nameに代入
@table_name = TableName.new(params[:table_name])
if @table_name != nil
print @table_name.link
else
print “table_name is nil”
end
redirect_to :action => ‘parse’
end
どうでしょう?
なお、「@table_name」や「TableName」などの変数やクラスは、Rails作成時に自動作成されたものです。
簡単なのは、やはり設定ファイルが少ないこと。Javaだとweb.xmlだのstruts-config.xmlだの、
いろいろと設定しなくてはならないが、Railsだとコントロールのメソッド名が勝手に
URLのパスとして設定される。
それから、モデルをデータベースからマッピングしているのか、
特にセッターゲッターなどの記述無しでも勝手に格納してくれる。
こいつに慣れたら、やばいなw