トップ > 技術メモ (ソフトウェア開発) >

Ruby on Rails ~レールの路線図~

2006.1.21に発表したRuby on Railsのスライドです。12月の週末に初めてrailsに触ったので、まだほんの初歩的、序の口のところです。

21st Jan 2006

堀川 久

http://www.nslabs.jp/

これまでの私

1.Ruby添付のcgi-lib.rb

2.Ruby添付のcgi.rb

3.テンプレートエンジンの探索

4.現在

チュートリアル

Tutorial in Ruby on Rails
http://wiki.rubyonrails.com/rails/pages/Tutorial

以上。

しかし、railsの全体像をつかまないと、自分でアプリケーションを書けません。

試した環境

インストール

... apacheの設定は後述

railsと依存パッケージ

Rails 1.0.0

リクエストからレスポンスまで

[Webブラウザ] -> [httpd] -> [ディスパッチャ] -> [コントローラ] <- redirect_to

[モデル] <-> [ビュー] -> [httpd]

MVC

ディスパッチャはrailsが提供。

パス技術
モデル:app/models/Active Record
ビュー:app/views/ERB
コントローラ:app/controllers/Action Pack

※モデルはデータを格納するだけ。ビューにnotifyしたりしない。コントローラが頑張る。

railsでのフロー

  1. ひな形を作る

    rails提供のコマンドを利用

  2. テストを作る

    テストのひな形も作ってくれる

  3. コードを書く -- ひな形を修正

・・・この繰り返し

ディレクトリ構成

$rails <アプリケーションのパス>

apacheの設定

cgiで動かしてみる

extra/httpd-vhosts.conf

<VirtualHost *:80>
ServerName rfoto.orange.fruits
DocumentRoot /home/hori/ruby/RFoto/public
UserDir disable
SuexecUserGroup hori hori
ErrorLog /home/hori/ruby/RFoto/log/apache-error_log
CustomLog /home/hori/ruby/RFoto/log/apache-access_log common
</VirtualHost>

DBの設定

config/database.ymlファイル

development:
  adapter: mysql
  database: RFotoDB
  username: rfoto_dbuser
  password: パスワード
  encoding: utf8 ・・・これで文字コードを指定
  socket: /var/lib/mysql/mysql.sock

script/generateコマンド

scaffold

マスタ編集の一連の処理を生成

$ script/generate scaffold <モデル名> [<コントローラ名>] [<アクション>, ...]

モデル

Active Recordパッケージ;

モデル (2)

$ script/generate model <モデル名>

DBテーブル

1:多、多:多

(2007.2.21追記。) has_and_belongs_to_many は deprecated (非推奨) になった。多対多は、has_many の:throughオプションを使う。中間テーブルは普通のActiveRecordテーブルとして作る。

複雑なテーブル / レガシーシステム

コントローラ

アクションの決定

コントローラクラス

コントローラからモデル操作

モデルオブジェクトのメソッド

コントローラのメソッド

日本語を表示するために

app/controllers/application.rb

class ApplicationController < ActionController::Base
  before_filter :set_charset
  after_filter :response_encoding

  private
  def set_charset
    @headers['Content-Type'] = 'text/html; charset=UTF-8'
  end

  def response_encoding
    #@response.body = NKF.nkf('-s -W -m0', @response.body)
  end
end

ビュー

ファイル名:パス/コントローラ名/アクション名.rhtml

ビュー (2)

部分レンダリングなど

それから

fin.


トップ > 技術メモ (ソフトウェア開発) > Ruby on Rails ~レールの路線図~
このページについてのご感想・ご提案などをお寄せください。なお、コメントに「http:」、HTML aタグが含まれると送信されません。
評価: ◎ ← → ×
コメント:
お名前:
メールアドレス:
[Profile]  [Privacy Policy]  [Legal & Link]  [Site Map]  

banner Netsphere Laboratories http://www.nslabs.jp/

Copyright (c) HORIKAWA Hisashi. All rights reserved.

[PR]

はてなブックマークに追加  

サイト内検索:

[PR]