忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/04/20 (Sat) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2010/01/26 (Tue) / 編集
Ruby On Railsでいろいろスルめも

よく使うファイルメモ

  1. データベースの設定
  2. 「config/database.yml」でデータベースの設定
  3. テーブルの設定
  4. 「db/migrate/日付_create_テーブル名.rb」はテーブルの設定
  5. モデル
  6. 「app/models/モデル名.rb」、データを取り扱います。
  7. ビュー
  8. 「app/views/ビュー名/アクション名.html.erb」、見た目の設定をします。
  9. コントローラ
  10. 「app/controllers/コントローラ名_controller.rb」、モデルとビューの仲介役です。アクションの設定とか。 デフォルトでは「http://ホスト名/パス/コントローラ名/アクション名/パラメータ」でパスにあるコントローラのアクションメソッド呼び出しだけど、「config/routes.rb」で変更できる。 URL内の各値は、コントローラのparams[:名前]で得られる。
  11. スタイルシート
  12. 「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)でユーザ登録したあとじゃないとログインできないから注意!

    拍手[0回]

    PR
    忍者ブログ [PR]