ログイン画面を作るため、deviseを使うことにしました。
環境はこれまで通りruby1.9.2, rails3.0.10, sqlite3でやろうとしたのですが、ドキュメントを読むと、rails3.1以上にしてと記載されていました。
せっかくなので、railsの環境を最新にすることにする。
以下にメモ。
rubyを最新にする
利用予定のHerokuで、1.9.3-p0が利用できるようなのでこれを導入する。
rvm install ruby-1.9.3-p0
installが終了したら以下の手順を行います。
rvm list // installの確認 rvm use ruby-1.9.3-p0 // rubyを切り替える rvm gemset create rails322 // gemsetを作成 rvm gemset list // 作成したgemsetがあることを確認する rvm use 1.9.3-p0@rails322 // 作成したgemsetにする gem install rails -v 3.2.2 // rails3.2.2をinstall which rails // install場所を確認 rails -v // バージョンの確認 Rails 3.2.2 // ok
上記の作業を全て終えたら準備完了です。では、つづけてdeviseのinstallいきまっしょい。
devise install
gem install devise gem list // installの確認 devise (2.0.4)
さて、勉強用のアプリを作成します。test用のアプリを作成します。
rails new practice // プロジェクト作成
適当に動作確認。次は、deviseをアプリで利用できるようにGemfileに追加。
vi Gemfile gem 'devise'
これで準備OK。さあ、はじめようか!!
rails generate devise:install
実行すると、以下のメッセージが表示される。1-4までを手動で設定を行えとのことです。
$ rails generate devise:install create config/initializers/devise.rb create config/locales/devise.en.yml =============================================================================== Some setup you must do manually if you haven't yet: 1. Ensure you have defined default url options in your environments files. Here is an example of default_url_options appropriate for a development environment in config/environments/development.rb: config.action_mailer.default_url_options = { :host => 'localhost:3000' } In production, :host should be set to the actual host of your application. 2. Ensure you have defined root_url to *something* in your config/routes.rb. For example: root :to => "home#index" 3. Ensure you have flash messages in app/views/layouts/application.html.erb. For example: <p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p> 4. If you are deploying Rails 3.1 on Heroku, you may want to set: config.assets.initialize_on_precompile = false On config/application.rb forcing your application to not access the DB or load models when precompiling your assets. ===============================================================================
上記はメモを残しておきます。Herokuにアップするとき、設定が必要みたいなので。
今回は開発環境だけなので、1-3を実施します。
設定が完了したら、モデルを作成します。
rails generate devise User
ファイルが作成されるので、コードをざっくりと目を通しておきます。よくわからないけど、OKw
DBを作成します。
rake db:migrate
標準のviewを作成します。
rails generate devise:views
app/views/devise以下に色々なファイルが生成されるのを確認します。rails serverでサーバーを立ち上げます。
http://localhost:3000/users/sign_inにアクセスすると、Sign inのページが表示されます。
これでOKと思いきや、カスタマイズ方法が全然わからん。
Readmeをあさっているとこんな表記かあった。
Starting with Rails? If you are building your first Rails application, we recommend you to not use Devise. Devise requires a good understanding of the Rails Framework. In such cases, we advise you to start a simple authentication system from scratch, today we have two resources:
ざっくりいうと、rails初心者は、認証のシステムを一度最初から作って、仕組みを理解してから使え。とのこと
正論すぎますね。まったくその通り。
ということで今回のシステムではdeviseは使わずに、自分でスクラッチから作って利用することにします。
急がば回れ〜なのです。
んじゃ
0 件のコメント:
コメントを投稿