何かインデントが汚くて...
これで治りました。おすすめ。
html improved indentation : A better indentation for HTML and embedded javascript
Authlogic + factory_girlの罠
Railsの認証プラグインではrestful_authenticationに迫る人気のauthlogicを使い始めました。
それと同時に!!テストはshoulda、fixtureはやめてfactory_girlを使っています。完全に単なる新しい物好きの挙動です。
それぞれ使い方はgithubのドキュメント見ればわかります。authlogicはサンプルアプリが助かりました。
躓いたところがあるので補足します。
functional testを書いてたら、どうもauthlogicでログインが出来ませぬ。
最初は確かこんな感じ。最後の二つ(password_saltとcrypted_password)は、サンプルアプリのfixtureからとってきました。
$ cat test/factories.rb
でも、どうもうまくいかない。Factoryで作ったsaltで暗号化されてないっぽい。何でなの?
調べてみると
だそうで。いいの?saltとか指定しないで?平気でした。Factoryがよろしく作ってくれました。
さらに。authlogicはユーザー(例えば。acts_as_authenticなモデル)のインスタンスを生成すると勝手にログインしてくれるので、そこも注意です。
それと同時に!!テストはshoulda、fixtureはやめてfactory_girlを使っています。完全に単なる新しい物好きの挙動です。
それぞれ使い方はgithubのドキュメント見ればわかります。authlogicはサンプルアプリが助かりました。
躓いたところがあるので補足します。
functional testを書いてたら、どうもauthlogicでログインが出来ませぬ。
最初は確かこんな感じ。最後の二つ(password_saltとcrypted_password)は、サンプルアプリのfixtureからとってきました。
$ cat test/factories.rb
Factory.define :ユーザさん, :class => User do |f|
f.username "ユーザさん"
f.email "ユーザさん@example.com"
f.password "pasuwado"
f.password_confirmation "pasuwado"
f.password_salt (salt = Authlogic::Random.hex_token)
f.crypted_password {Authlogic::CryptoProviders::Sha512.encrypt("sasasa" + salt)}
end
でも、どうもうまくいかない。Factoryで作ったsaltで暗号化されてないっぽい。何でなの?
調べてみると
it's all good, I am not using fixtures but Factories.
Factory.define :user do |u|
u.login Factory.next :login
u.password "password"
u.password_confirmation "password"
end
now it works fine.
だそうで。いいの?saltとか指定しないで?平気でした。Factoryがよろしく作ってくれました。
なので、これでOK。
$ cat test/factories.rb
Factory.define :ユーザさん, :class => User do |f|
f.username "ユーザさん"
f.email "ユーザさん@example.com"
f.password "pasuwado"
f.password_confirmation "pasuwado"
end
さらに。authlogicはユーザー(例えば。acts_as_authenticなモデル)のインスタンスを生成すると勝手にログインしてくれるので、そこも注意です。
$ cat test/functional/user_sessions_controller_test.rb
require 'test_helper'
class UserSessionsControllerTest < ActionController::TestCase
context "UserSessionsController" do
setup do
activate_authlogic
@ユーザさん = Factory.create(:ユーザさん)
UserSession.find.destroy #ログアウトしておく
end
end
Labels:
authlogic,
factory_girl,
Rails
Subscribe to:
Posts (Atom)
Author
Archive
Labels
- actionmailer (2)
- ActionView (2)
- activerecord (5)
- Ajax (1)
- apache (2)
- authlogic (2)
- awk (2)
- bash (4)
- block (1)
- cache (1)
- capistrano (1)
- crontab (1)
- Debian (1)
- deployment (1)
- design (2)
- design pattern (1)
- exception_notifier (1)
- factory_girl (2)
- firefox (1)
- flash (1)
- git (2)
- haml (1)
- html (1)
- javascript (5)
- jQuery (3)
- life (2)
- linux (3)
- lisp (2)
- mail (1)
- migration (1)
- mysql (2)
- Passenger (2)
- prototype.js (1)
- Rails (26)
- Rails3 (1)
- rake (1)
- restful_authentication (2)
- Rspec (3)
- ruby (10)
- rubygems (1)
- screen (1)
- script/console (1)
- Security (1)
- shouda (1)
- shoulda (3)
- subversion (2)
- sudo (1)
- tdd (1)
- testing (4)
- thunderbird (1)
- UI (1)
- unix (1)
- vim (3)
- work (1)
- xargs (1)
- xss (1)
- zsh (1)