rails
productionのデータベースを作るには、 rake environment RAILS_ENV=production migrate
poundでsslを使った場合でも、railsからはpoundがhttpでアクセスしてくるように見えるので、 redirect_toやurl_forが生成するURLのプロトコルはhttpになってしまう。 プロトコルを変更するには、コントロールでdefault_url_optionsをオーバーライドする。 de…
コマンドの一覧 mongrel_rails help 各コマンドのヘルプ mongrel_rails コマンド -h
render :action => "demo"↑ demoアクションで使うテンプレートをレンダリングするが、demoメソッドは実行されない。 render_compoent :action => "demo"↑ demoアクションが実際に実行される。demoメソッドは実行される。 レスポンスは生成されるので、render…
コンポーネントとは、コントロールとテンプレートのセットのこと。 コンポーネントを汎用的に使うためには、componentsディレクトリにモジュール名をつけて、 コントロールとテンプレートを置く。 components/my_test/abc_controller.rb components/my_test/…
部分テンプレートのファイル名の先頭はアンダーバー。 部分テンプレートとのやりとりはローカル変数で行う。 ローカル変数は部分テンプレートの名前で定義される。 ローカル変数に値を渡すには、 コントローラで、テンプレートの名前でインスタンス変数を定…
レイアウトの指定 class AbcController < ApplicationController layout "xyz" # <--レイアウトの名前 layout :determine_layout # <--レイアウトの名前を返すインスタンスメソッド def xxx # レイアウトの名前は、app/views をルートとして考える render :l…
フィールドのヘルパーの最初の2つのパラメータは共通 1つめ、インスタンス変数(通常は、モデルオブジェクト)の名前 2つめ、インスタンス変数のアトリビュートの名前 この設定は、フィールドに値を充填するときと、フォームを送信するときに使われる。 名前は…
Assetは素材(画像、スタイルシート、スクリプト)のこと。 <%= img_tag "img1" %> 生成されるURLは、asset_host + プレフィックス + 指定したパス + デフォルトの拡張子 asset_hostは、config.action_controller.assert_host プレフィックスは/images, /style…
オブザーバ ---> モデル <===> コントローラ <===> ビュー <--- ヘルパー スイーパ | | アクション テンプレートコントローラは、 ヘルパーをビューにincludeする (helper) オブザーバをモデルに織り込む (observer) スイーパをアクティブにする (cache_swee…
rails demo config/database.yml development: adapter: mysql database: demo_development username: hoge password: host: localhost encoding: utf8 socket: /var/run/mysqld/mysqld.sock config/environment.rb $KCODE = 'UTF8' app/controllers/applica…
rails の設定は、ほとんどベースクラスのクラスメソッドで行う。 設定する場所は config/environment.rb クラス定義のとき config/environment.rb では、config(Rails::Configuration)オブジェクトを使う。 config . action_controller は、ActionController…
ActionController のバリデーション ActionController のバリデーションエラーは、フラッシュに保存する。 class HogeController < ApplicationController verify :only => :アクション名, :session => :セッションキー, :add_flash => { :notice => '何かメ…
実装の仕方 メソッドシンボル class HogeController < ApplicationController before_filter :foobar private def foobar end end ブロック class HogeController < ApplicationController before_filter do |controller| end end クラス class HogeFilter d…
実装の仕方 インスタンスメソッドを定義 class Hoge < ActiveRecord::Base def before_save end end ブロック class Hoge < ActiveRecord::Base before_save do |model| end end メソッドシンボル class Hoge < ActiveRecord::Base before_save :foobar prot…
対応するアクションが見つからない場合 method_missing が定義されている場合 method_missing を呼び出す レスポンスが生成されていない場合、テンプレートを呼び出す テンプレートが見つからなければ、'Template is missing' method_missing が定義されてい…
URL <===> config/routes.rb <===> パラメータ(@params) パターンコンポーネント :パラメータ名 *パラメータ名 (※配列) / (※コンポーネントの区切り) :controller (※モジュールに含まれるコントローラは'/'で区切られる) リクエストURLからパラメータを取得 …
ActiveRecord::Base#attributes は、クエリの選択列のこと ActiveRecord::Base.columns は、マッピングしているスキーマの列のこと create table my_hoges ( id int not null auto_increment, aaa varchar(30) not null, bbb varchar(30) not null, primary …
log/環境名.log ActiveRecord, ActionController では、logger属性、ビューでは、@logger ActionView::Helpers::DebugHelper#debug Kernel#p のHTML版のようなもの script/console モデルのデバッグ script/breakpointer BreakPoint#breakpoint
railsにデフォルトで用意されている実行環境名 development test production 環境名が使われる場所 script/server -e 環境名 環境変数 RAILS_ENV config/environments/環境名.rb config/database.yml の各セクションの先頭は、「環境名: 」 log/環境名.log
config/environment.rb で $KCODE = "UTF8" config/database.yml で encoding: utf8 MySQL の /etc/mysql/my.cnf で、[client]と[mysqld]を default-character-set = utf8 文字コードとは関係ないが、debianだと /var/run/mysqld/mysqld.sock なので、 confi…