オープン感覚で世界を広げよう
  • Ruby on Rails / Mongrel&Apache
  • MySQL / Sqlit3 / PostgreSQL...
  • It is Agile simply.

rails2.0におけるシンプルな操作手順
  • customer アプリケーションの作成
    rails --database=mysql customer
  • データベースの作成(MySQLコマンドラインから)
    create database customer_development character set utf8;
  • scaffold によるコントローラ、モデル&メンテ機能とテーブル定義の作成
    cd customer
    ruby script/generate scaffold customer c_name:string c_name_kana:string p_name:string p_name_kana:string yakushoku:string email:string c_tele:string c_fax:string zip:string address:string url:string pic_url:string
  • テーブルの作成
    rake db:migrate
  • 足りない列の追加など
    ruby script/generate migration add_mail
    002_add_mail.rbの編集(add_column)
  • テーブル反映
    rake db:migrate
  • 値の検証設定
    customer.rb(編集:Validates_xxx_of)
  • Mongrel(WEBlick)の起動
    ruby script/server
  • ブラウザ確認
    http://localhost:3000/customers/

rails1.xにおけるシンプルな操作手順
  • customer アプリケーションの作成
    rails customer
  • データベースの作成(MySQLコマンドラインから)
    create database customer_development character set utf8;
  • コントローラの作成
    cd customer
    ruby script/generate controller admin
  • モデルの作成
    ruby script/generate model customer admin
    001_create_customers.rb の編集(t.column)
  • テーブルの作成
    rake db:migrate
  • 足りない列の追加など
    ruby script/generate migration add_mail
    002_add_mail.rbの編集(add_column)
  • テーブル反映
    rake db:migrate
  • 値の検証設定
    customer.rb(編集:Validates_xxx_of)
  • 静的なscaffoldの作成(デザインを整える)
    ruby script/generate scaffold customer admin
  • Mongrel(WEBlick)の起動
    ruby script/server
  • ブラウザ確認
    http://localhost:3000/customers/

その他よく使用するコマンド一覧
  • maigrateのバージョン指定
    rake db:migrate VERSION=0
  • 名前空間付きコントローラの作成
    ruby script/generate controller admin/main
    ruby script/generate controller admin/customers
  • 1つずつテストする
    <モデル>
    ruby test/unit/customer_test.rb
    <コントローラ>
    ruby test/functional/customers_controller_test.rb
    <名前空間付きコントローラ>
    ruby test/functional/admin/customers_controller_test.rb
    <特定のメソッドのみ>
    ruby test/unit/customer_test.rb --name=test_truth
  • まとめてテストする
    <単体テスト>
    rake test:units
    <機能テスト>
    ruby test:functionals
    <結合テスト>
    ruby test:integration
    <単体・機能・結合テスト>
    ruby test
  • 結合テスト用のスクリプト自動生成
    ruby script/generate integration_test add_a_customer
  • プラグイン用フォルダ・ファイルの自動生成
    ruby script/generate plugin my_format
  • タスク一覧の表示
    rake -T
    rake --tasks
  • ドキュメントの生成
    rake doc:app
  • ログのクリア
    rake log:clear
  • Railsバージョン固定
    rake rails:freeze:gems
  • 設定ファイルなど最新にする
    rake rails:update
  • スキーマダンプ
    rake db:schema:dump
  • スキーマダンプから構築
    rake db:schema:load
  • デバッグ(ソースにbreakpoint()を埋め込むこと)
    ruby script/breakpointer
  • パフォーマンス計測
    ruby script/performance/profiler 計測対象モジュール 処理回数
  • セッションをデータベースで管理
    rake db:sessions:create
    rake db:migrate
  • セッションテーブルを空にする
    rake db:sessions:clear

レコードの取得
  • 1つのレコードを取り出す
    def show
    @user = User.find(params[:id])
    end

    <p><%= sprintf('%s %s, ユーザNO%d',h(@user.f_name),h(@user.g_name),@user.no) -%></p>

  • 配列で複数のレコードを取り出す
    def show
    @users = User.find([2,4,6,10])
    end

  • 全てのレコードを取り出す
    def show
    @users = User.find(:all)
    end

    <ul>
    <% @Users.each do |user| -%>
    <li><%= sprintf('%s %s, ユーザNO%d',h(@user.f_name),h(@user.g_name),@user.no) -%></li>
    <% end -%>
    </ul>


検索、ソート、件数の指定
  • :conditionsオプション
    @users = User.find(:all, :conditions => 'f_name = "佐々木"')

    @users = User.find(:all, :conditions => "no >= 10 and no <= 17")

    @users = User.find(:all, :conditions => ['f_name = ?', name])

    @users = User.find_all_by_f_name(name)

    @users = User.find_all_f_name_and_no(name,no)

  • :orderオプション
    @users = User.find(:all, order => 'no')

  • :limitオプションと:offetオプション
    @users = User.find(:all, :limit => 5, :offest => 10)


条件を指定して取り出す
  • @user = User.find(:first,
    :conditions => ['g_name = ?', '里美'])

  • @user = User.find_by_g_name('博美')

  • @user = User.find_by_g_name_and_f_name('康一', '小林')


wordpressブログ構築
  • ブログ構築の準備をする
    1. ブログ名と説明を指定する
    2. 1ページに表示する記事の数を指定する
    3. カテゴリーを作成する
    4. 画像の大きさを指定する
    5. 記事を投稿する
    6. オリジナルのテーマを用意する

  • ブログのトップページを作成する
    1. index.phpに基本的なHTMLソースを記述する
      ....WordPress関数....
      <?php bloginfo('charset'); ?>
      <?php bloginfo('name'); ?>
      <?php wp_title(' : '); ?>
      <?php bloginfo('stylesheet_url'); ?>
      <?php body_class(); ?>
    2. トップページの基本構造を記述する
    3. 基本的なレイアウトを形にする
    4. ヘッダにブログ名と説明を表示する
      ....WordPress関数....
      <?php echo home_url(); ?>
      <?php bloginfo('name'); ?>
      <?php bloginfo('description'); ?>
    5. ヘッダのデザインを指定する
    6. フッタにコピーライトを表示する
      ....WordPress関数....
      <?php bloginfo('name'); ?>

  • カスタムヘッダで指定したヘッダ画像を表示する
    1. 標準で表示するヘッダ画像を用意する
    2. カスタムヘッダの機能を有効にする
      ....WordPress関数....
      add_custom_image_header('','admin_header_style');
    3. 標準で表示するヘッダ画像を指定する
      ....WordPress関数....
      define('HEADER_IMAGE','%s/images/header.jpg');
    4. ヘッダ画像の大きさを指定する
      ....WordPress関数....
      define('HEADER_IMAGE_WIDTH','800');
      define('HEADER_IMAGE_HEIGHT','200');
    5. 標準の文字の色を指定する
      ....WordPress関数....
      define('HEADER_TEXTCOLOR', '000000');
    6. プレビューの文字のデザインを指定する
      fuctionは割愛
    7. ヘッダ画像を表示する
      ....WordPress関数....
      <?php header_image(); ?>
      <?php header_textcolor(); ?>
      <?php header_textcolor(); ?>
    8. ヘッダ画像を変更する
    9. ヘッダを標準のデザインにリセットする

  • カスタムヘッダの設定画面にヘッダ画像の選択肢を用意する
    1. 選択肢として表示するヘッダ画像を用意する
    2. 選択肢として表示するヘッダ画像を指定する
      ....WordPress関数....
      register_default_headers( array (
      'cat_default' => array (
      'url' => '%s/images/header.jpg',
      'thumbnail_url' => '%s/images/header_thumb.jpg',
      'description' => 'ヘッダ画像1'
      )
      ) );
    3. 選択肢を増やす
      ....WordPress関数....
      register_default_headers( array (
      'cat_default' => array (
      'url' => '%s/images/header.jpg',
      'thumbnail_url' => '%s/images/header_thumb.jpg',
      'description' => 'ヘッダ画像1'
      ),
      'cat_green' => array (
      'url' => '%s/images/header_2.jpg',
      'thumbnail_url' => '%s/images/header_2_thumb.jpg',
      'description' => 'ヘッダ画像2'
      ),
      'cat_black' => array (
      'url' => '%s/images/header_3.jpg',
      'thumbnail_url' => '%s/images/header_3_thumb.jpg',
      'description' => 'ヘッダ画像3'
      )
      ) );
    4. 選択肢として用意したヘッダ画像を使用する

  • 記事を表示する
    1. 記事のタイトルを表示する
      ....WordPress関数....
      <?php if(have_posts()): while(have_posts()): the_post(); ?>
      <?php the_permalink(); ?>">
      <?php the_title(); ?>
      <?php endwhile; endif; ?>
    2. 記事の本文を表示する
      ....WordPress関数....
      <?php the_content(); ?>
    3. 記事のデザインを指定する
    4. 本文中の画像のデザインを指定する
    5. 投稿日時とカテゴリーを表示する
      ....WordPress関数....
      <?php echo get_the_date('Y年n月j日 G:i'); ?>
      <?php the_category(', '); ?>
    6. 4件目以降の記事を閲覧できるようにする
      ....WordPress関数....
      <?php previous_posts_link('&laquo; PREV'); ?>
      <?php next_posts_link('NEXT &raquo;'); ?>

  • ウィジェットを利用してサイドバーにメニューを表示する
    1. ウィジェットの機能を有効にする
      ....WordPress関数....
      register_sidebar();
    2. 表示したいメニューを指定する
    3. メニューのタイトルを指定する
    4. サイドバーにメニューを表示する
      ....WordPress関数....
      <?php dynamic_sidebar();?>
    5. メニューのデザインを指定する

  • コメント投稿フォームとトラックバックURLを追加する
    1. コメントやトラックバックに関する設定を行う
    2. 投稿フォームを追加する
      ....WordPress関数....
      <?php if(is_single()): ?>
      <?php comments_template(); ?>
      <?php endif; ?>
    3. トラックバックURLを追加する
      ....WordPress関数....
      <?php if(pings_open()): ?>
      <?php trackback_url(); ?>
      <?php endif; ?>
    4. 投稿フォームとトラックバックURLのデザインを指定する
    5. 受信したコメントやトラックバックの表示を確認する
    6. 受信したコメントやトラックバックのデザインを指定する

  • カスタム背景で指定した背景画像を表示する
    1. カスタム背景の機能を有効にする
      ....WordPress関数....
      add_custom_background();
    2. 背景画像をアップロードする
    3. 背景画像を表示する
      ....WordPress関数....
      <?php wp_head(); ?>
    4. 各ページの表示を確認する

  • 参考図書1

  • 参考図書2