« ロック・フィールドのオシャレなオフィス | トップページ | OpenIDがそろそろ »

2008年2月 7日 (木)

Ramaze - 簡単なものをつくってみる

先日けっこういいと言ったRamazeですが、せっかくなのでちょっと簡単なものを作ってみましょう。screencastsに載っているネタを参考にして、レストランメニューを表示してみたいと思います。

先日の手順の続きです。
createしたrestaurantスケルトンを使います。create後、restaurantディレクトリの下にはいろいろなフォルダができますが、その中のcontroller/main.rbを下記のように編集します。

controller/main.rb
===
# Default url mappings are:
#  a controller called Main is mapped on the root of the site: /
#  a controller called Something is mapped on: /something
# If you want to override this, add a line like this inside the class
#  map '/otherurl'
# this will force the controller to be mounted on: /otherurl

class MainController < Ramaze::Controller
  layout '/page'

  # the index action is called automatically when no other action is specified
  def index
    @title = "Welcome to International Restaurant!"
  end

  # the string returned at the end of the function is used as the html body
  # if there is no template for the action. if there is a template, the string
  # is silently ignored
  def notemplate
    "there is no 'notemplate.xhtml' associated with this action"
  end

  #menu list
  def list( cuisine )
    @title = "Today's Menu"
    case cuisine
      when 'jp'
        @dishes = [
          'Salmon Teriyaki',
          'Unagi Nigiri Sushi',
          'Spicy Tuna Roll',
        ]
      when 'in'
        @dishes = [
          'Chicken Madras',
          'Kashmiri Rogan Josh',
          'Beef Samosas',
        ]
      when 'us'
        @dishes = [
          'Buffalo Wings',
          'New England Clam Chowder',
          'Gumbo',
        ]
    end
  end

end
===

赤字が編集/追加する箇所です。

次に、viewフォルダ下にlist.xhtmlを新規作成して以下のようにします。

view/list.xhtml
===
<?r if @dishes ?>
  <ol>
  <?r @dishes.each do |dish| ?>
    <li>#{dish}</li>
  <?r end ?>
  </ol>
<?r else ?>
  <p>Invalid cuisine.</p>
<?r end ?>

===

最後に、view/index.xhtml を以下のように編集します。

view/index.xhtml
===
<p>Please choose form among our wide variety of fine cuisines:</p>

<ul>
<li><a href="/list/jp">Japanese</a></li>
<li><a href="/list/in">Indian</a></li>
<li><a href="/list/us">American</a></li>
</ul>

===

これで終わり。start.rbを実行します。
---
> ruby start.rb
---

http://localhost:7000/ にアクセスします。
Ws000002

各国のボタンをクリックすると、それぞれのメニューリストを表示します。
Ws000003
Ws000004
Ws000005

超簡単 多国籍レストランのメニュー表示システムw
まあHello Worldの次くらいのステップでしょうか。メニューリストはmain.rbで配列で持ちましたが、ちょっと手を加えるとDBから呼ぶことも可能ですよね。

今回は手軽にやるためにVCで作りましたが、modelフォルダ下にモデルを作ってMVCでももちろんやれます。処理の細かいところはscreencastsチュートリアルを読んでいけばわかると思います。

なんかRailsより手軽にできて楽しいのでもうちょっと勉強してまたRamazeでなんかやってみたいと思います。

|

« ロック・フィールドのオシャレなオフィス | トップページ | OpenIDがそろそろ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/125677/10317868

この記事へのトラックバック一覧です: Ramaze - 簡単なものをつくってみる:

« ロック・フィールドのオシャレなオフィス | トップページ | OpenIDがそろそろ »