ちょっとしたプロトタイプを作ってみることに
しかも公開ベースで進めてみます。とりあえず rails new を。
$ rails new hoge
で、とりあえず何かの scaffold なソレが一つは必要らしい。
作っとくか。
$ rails generate scaffold Conn access_key:string secret_access_key:string end_point:string
げ、test_unit ができてます。とりあえずスルーの方向。
で、devise はバージョン縛り必要なのかな。最新 3.0.3 とか出ましたが。とりあえず以下を追加して
gem 'devise'
入れるか、と思ったのですが某所のマネをして Gemfile を以下なカンジに修正。
source 'https://rubygems.org' gem 'rails', '3.2.13' gem 'bootstrap-sass', '2.1' gem 'devise' group :development, :test do gem 'sqlite3', '1.3.5' gem 'rspec-rails', '2.11.0' end group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' gem 'therubyracer', :platforms => :ruby gem 'uglifier', '>= 1.0.3' end gem 'jquery-rails', '2.0.2' group :production do gem 'pg', '0.12.2' end
で、導入 kickoff します。
$ bundle install
何故か結構時間がかかっております。終わったら以下なのか。
$ 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 on Heroku with Rails 3.2 only, 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. 5. You can copy Devise views (for customization) to your app by running: rails g devise:views ===============================================================================
手動で云々、と言われてますね。
まず、config/environments/development.rb に云々とあります。これ、heroku 宛てに云々する場合は production.rb に、という理解で良いのかな。
次は config/routes.rb に云々とあります。わしは先程 ConnsController というコントローラクラスを追加しておりますので、以下になるのかな。
Shurijp::Application.routes.draw do root :to => "conns#index" resources :conns
次に app/views/layouts/application.html.erb について以下をよしなに、とあります。
<p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p>
で、Heroku に deploy する 3.2 なソレは云々とありますね。以下を config/application.rb のブロック末端に追加。
config.assets.initialize_on_precompile = false end end
で、最後に以下を実行、なのかどうか。
$ rails g devise:views invoke Devise::Generators::SharedViewsGenerator create app/views/devise/shared create app/views/devise/shared/_links.erb invoke form_for create app/views/devise/confirmations create app/views/devise/confirmations/new.html.erb create app/views/devise/passwords create app/views/devise/passwords/edit.html.erb create app/views/devise/passwords/new.html.erb create app/views/devise/registrations create app/views/devise/registrations/edit.html.erb create app/views/devise/registrations/new.html.erb create app/views/devise/sessions create app/views/devise/sessions/new.html.erb create app/views/devise/unlocks create app/views/devise/unlocks/new.html.erb invoke erb create app/views/devise/mailer create app/views/devise/mailer/confirmation_instructions.html.erb create app/views/devise/mailer/reset_password_instructions.html.erb create app/views/devise/mailer/unlock_instructions.html.erb
あとは以下も、とのこと。
$ rake db:migrate == CreateConns: migrating ==================================================== -- create_table(:conns) -> 0.0035s == CreateConns: migrated (0.0036s) ===========================================
これで rails c から User.create して云々、とありますが production なナニではどうすりゃ良いのかな。とりあえず rails s して http://localhost:3000/users/sign_up にアクセスしてみます。
む、Routing Error と出ました。rake routes で確認してみるに users なナニが無いですね。何かスルーしているのかどうか。
あ、rails g devise User ってしてませんでした。間に合うのかな。
$ rails g devise user invoke active_record create db/migrate/20130831055327_devise_create_users.rb create app/models/user.rb invoke rspec create spec/models/user_spec.rb insert app/models/user.rb route devise_for :users
で、もっかい migrate か。
$ rake db:migrate = DeviseCreateUsers: migrating ============================================== -- create_table(:users) -> 0.0316s -- add_index(:users, :email, {:unique=>true}) -> 0.0008s -- add_index(:users, :reset_password_token, {:unique=>true}) -> 0.0005s == DeviseCreateUsers: migrated (0.0333s) =====================================
で、http://localhost:3000/users/sign_up にアクセスしたら Sign up なフォームが出ましたね。この時点でリポジトリを作って push しておくことに。
以降
以下なあたりでもごもごする方向。
- Heroku にて云々とか
- よく考えたら Conn なモデルは User に関連付けしなきゃいけなかった件orz
- どうやってリカバしたものやら
- Conn に登録されてる属性を使って某所に fog 使ってアクセスできるか確認
- rspec な試験も云々
も少し時間があるはずなので、リカバな方法を云々してみます。
後から関連付け
これ、model なソースに belongs_to とか has_many とか付けといて user_id な属性を追加する migration を rails g あたりで云々したら良いのかどうか。
branch 作って盛り込んでみます。
と言いつつ
一旦離脱するのでここでエントリ投入。夜に続きに着手の方向にて。