プログラム / 2010/01/26 (Tue) / 編集 |
Ruby On Railsでいろいろスルめも
よく使うファイルメモ
- データベースの設定 「config/database.yml」でデータベースの設定
- テーブルの設定 「db/migrate/日付_create_テーブル名.rb」はテーブルの設定
- モデル 「app/models/モデル名.rb」、データを取り扱います。
- ビュー 「app/views/ビュー名/アクション名.html.erb」、見た目の設定をします。
- コントローラ 「app/controllers/コントローラ名_controller.rb」、モデルとビューの仲介役です。アクションの設定とか。 デフォルトでは「http://ホスト名/パス/コントローラ名/アクション名/パラメータ」でパスにあるコントローラのアクションメソッド呼び出しだけど、「config/routes.rb」で変更できる。 URL内の各値は、コントローラのparams[:名前]で得られる。
- スタイルシート 「public/stylesheets/scaffold.css」がデフォルトなスタイルシート
データベースを使う
「D」オプションでデータベースを指定できる、以下はPostgreSQLの場合%rails プログラム名 -D postgresql次に、「config/database.yml」を編集してデータベースの設定。
development: adapter: postgresql encoding: unicode database: プログラム名_development pool: 5 username: データベースのユーザ名 password: パスワード test: adapter: postgresql encoding: unicode database: プログラム名_test pool: 5 username: データベースのユーザ名 password: パスワード production: adapter: postgresql encoding: unicode database: プログラム名_production pool: 5 username: データベースのユーザ名 password: パスワードこれができたらデータベースを作成!
%rake db:create:all
次はテーブルの設定、
%./script/generate scaffold テーブル名 カラム名1:カラムタイプ1 カラム名2:カラムタイプ2 ....間違えたり、細かい設定がしたかったり、テンプレを編集したいときは「db/migrate/変な数字_create_テーブル名」を編集してもおけ。 設定が終わったらテーブルを作成
%rake db:migrate
ユーザ認証
restful_authenticationプラグインを用いたユーザ認証の設定方法。とりあえず、データベースの作成(テーブルの作成の前)までを済ませて置く。
ではrestful_authenticationのダウンロード
%script/plugin source http://svn.techno-weenie.net/projects/plugins %script/plugin install restful_authentication認証用コンポーネント一式を生成、ここでユーザ情報を使うmodel名はuser、セッション管理用のコントローラ名をsessionsとすると。
script/generate authenticated user sessionsそしてテンプレート通りにテーブル作成
%rake db:migrateログインやログアウトの設定をやりやすくするために「config/routes.rb」に以下を追加
map.signup '/signup', :controller => 'users', :action => 'new' map.login '/login', :controller => 'sessions', :action => 'new' map.logout '/logout', :controller => 'sessions', :action => 'destroy'これで、「http://URL/signup」でサインアップ(新規登録)画面表示ができる。
次に「app/controllers/users_controller.rb」に注目
class UsersController < ApplicationController # Be sure to include AuthenticationSystem in Application Controller instead include AuthenticatedSystem「AuthenticatedSystemはここではなくアプリケーションコントローラでinclude城やゴラァ」といっているので、「include AuthenticatedSystem」を削除し、「app/controllers/application_controller.rb」に追加する。
class ApplicationController < ActionController::Base include AuthenticatedSystem
あとは認証が必要なコントローラに「before_filter :login_required」を追加すればよし。ログインが必要なコントローラにアクセスしようとするとログイン画面が表示される。
ちなみに、サインアップ画面(http://localhost:3000/signup)でユーザ登録したあとじゃないとログインできないから注意!
PR
トラックバック
URL :
コメント