金子邦彦研究室プログラミングRuby による Web/データベース・プログラミングPadrino をインストールし,使ってみる

Padrino をインストールし,使ってみる

Padrino とは、 Sinatra 上に構築された フル・スタック (full-stack) の ruby フレームワーク.必要な機能を選んで取り込めるのが便利.

関連する外部ページhttp://www.padrinorb.com/guides

手順の要点

gem install padrino
padrino generate project hoge -t shoulda -e erb -c sass -s jquery -d activerecord
cd hoge
bundle
padrino generate admin 
padrino rake ar:create
padrino rake ar:migrate
padrino rake seed 
padrino start

Padrino のインストール

  1. ruby, rubygesm, sinatra のインストール (Install ruby, rubygems and sinatra)

    Ubuntu での実行手順例 (Instal Sinattra on Ubuntu)

    sudo apt -y update
    sudo apt -y install ruby
    sudo apt -y install ruby-dev
    sudo apt -y install rubygems
    sudo gem install sinatra
    

    [image]
  2. erubis, eruby のインストール (Install erubis and eruby)
    sudo apt -y update
    sudo apt -y install erubis
    sudo apt -y install erubis-doc
    sudo apt -y install liberubis-ruby
    
    
  3. Padrino と Padrino 関連ソフトウェアのインストール
    sudo gem install activerecord
    sudo gem install tilt
    sudo gem install slim
    sudo gem install padrino
    

    [image]
  4. インストール済の gem の更新
    sudo gem update --system 
    sudo gem update
    

    Padrino を使ってみる

    ルーティング定義、コントローラの生成、ビューの生成を行なってみる

    1. Padrino プロジェクトの生成
      1. ひな形の生成

        オプションで、次のように設定する

        • プロジェクト名: hoge
        • orm: activerecord
        • test: shoulda
        • script: jquery
        • renderer: erb
        • stylesheet: sass
        padrino generate project hoge -t shoulda -e erb -c sass -s jquery -d activerecord 
        

        [image]
      2. Gemfile の調整

        末尾に「gem 'activesupport'」を追加する.

        gem 'activesupport'
        

        [image]
      3. bundle の実行
        cd hoge
        bundle
        

        [image]

        bundle の実行時に次のようなエラーメッセージが出る場合がある.

        Bundler could not find compatible versions for gem "tilt":
          In Gemfile:
            padrino (= 0.11.1) ruby depends on
              tilt (~> 1.3.0) ruby
        
            padrino (= 0.11.1) ruby depends on
              tilt (1.4.1)
        

        [image]

        エラーを回避するために、hoge/Gemfile を編集し、 末尾に次を追加 する

        gem 'tilt', '1.3.7'
        

        さらに、次のコマンドを実行する

        sudo gem install tilt -v 1.3.7
        

        [image]

        その後 bundle を実行する。エラーメッセージが出ていないことを確認する

        bundle
        
      4. config/database.rb の確認

        [image]
    2. ルーティング定義
      1. 「padrino rake routes」で、ルーティングを確認しておく.

        ルーティングが未定義であることが確認できる

        padrino rake routes
        

        [image]
      2. app/app.rb を編集し、ルーティングを定義する

        ※ app/app.rb では、ルーティング定義のほか、Caching など、さまざまな定義ができる

            get "/" do
               "Hello, World!"
            end
            get :welcome do
               render 'welcome/index.erb'
            end
        

        [image]
    3. コントローラの生成
      padrino generate controller welcome
      

      [image]
    4. ビューファイルの作成

      app/views/welcome/index.erb を試しに次のように作成

      <html>
      <p> 
      Welcome
      <%= params %>
      </html> 
      

      [image]
    5. 再度、「padrino rake routes」で、ルーティングを確認する
      padrino rake routes
      

      [image]
    6. padrino start」で、サーバを起動
      padrino start
      

      [image]
    7. http://localhost:3000/welcome で画面が出ることを確認

      http://localhost:3000/welcome

      [image]
    8. app/views/welcome/index.erb を次のように書き換えてみる

      JavaScript を使っている例

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
          <head>
      
              <meta http-equiv="Content-Type" content="text/html; initial-scale=1.0; charset=utf-8" />
              <meta http-equiv="Content-Style-Type" content="text/css" />
              <meta http-equiv="Content-Script-Type" content="text/javascript" />
              <meta http-equiv="MSThemeCompatible" content="yes" />
      
              <title>
                  JavaScript Sample
              </title>
              
              <script type="text/javascript">
              <!--
                  function foo(val){
                  alert(val);
                  }
              //-->
              </script>
              
          </head>
      
          <body>
                  
              <script type="text/javascript">
              <!--
                 document.write( <%= params %> )
              //-->
              </script>
                
          </body>
      </html>
      

    ダッシュボードの生成

    先ほどのディレクトリ/var/tmp/hoge のままで、次の操作を行う.

    1. 「padrino generate admin」の実行
      padrino generate admin 
      

      [image]
    2. 所定のコマンドを実行
      bundle
      padrino rake ar:create
      padrino rake ar:migrate
      padrino rake seed 
      

      [image]
    3. 再度、「padrino rake routes」で、ルーティングを確認する

      [image]
    4. http://localhost:3000/admin で管理画面が出ることを確認

      http://localhost:3000/admin