MemoMemo
Rails
最終更新:
kiminori_hirose
-
view
Rails 1.2.3 のメモ
作成手順
プロジェクトの作成
projectプロジェクトを作成する。
$ rails project
データベースの設定
config/database.ymlをMySQL用に編集する。(testとproductionもdevelopmentと同様に変更しておく。)
development:
adapter: mysql
database: project_development
username: {MySQLのユーザ名}
password: {パスワード}
socket: /var/lib/mysql/mysql.sock #ソケットのとき
host: localhost #TCP/IPのときのMySQLのホスト名
port: 3306 #TCP/IPのときのMySQLのポート番号。指定してないときは、3306になる
encoding: utf8 #文字化け防止のためデータベースの文字コードを設定する。
文字コード(UTF-8)の指定
app/controllers/application.brにHTTPレスポンスで返すContent-Typeを追加する。
class ApplicationController < ActionController::Base
after_filter :set_charset
protected
def set_charset
headers["Content-Type"] = 'text/html; charset=UTF-8'
end
end
config/environment.rbにRailsの内部文字コードを追加する。
$KCODE = 'UTF8'
Tips
Railsの規約にあわない名前を持つテーブルのためにset_table_name を使う
config/environment.rbファイルを編集
ActiveRecord::Base.pluralize_table_names = false
app/controllers/entity.rbを編集
class Entity < ActiveRecord::Base
set_table_name "entity"
end
主キーがidではないテーブルのためにset_primary_keyを使う
app/controllers/entity.rbを編集
class Entity < ActiveRecord::Base
set_primary_key "entity_id"
end
ActiveRecordで外部キーを指定する
class Person < ActiveRecord::Base
belongs_to :company
validates_associated :campany
end
独自の単数形と複数形を定義する
config/environment.rbを編集
Inflector.inflections do |inflect|
inflect.irregular 'leaf', 'leaves'
end
セッションの有効期限を設定する
プロジェクト全体で設定するには、config/environment.rbを編集
ActionController::Base.session_options[:session_expires] = 15.minutes.from_now
特定のコントローラで設定するには、各コントローラを編集
class PersonController < Application
session :session_expires => 10.minutes.from_now
end
HTMLエスケープとURIエンコード
HTMLエスケープ
<a href="<%=h 'http://localhost/q=東京' -%>">LINK</a>
URIエンコード
<a href="<%=u 'http://localhost/q=東京' -%>">LINK</a>