ナツ8:deviseを使ってユーザー登録
今日はdeviseを使ったユーザー登録画面を作成。
参考サイトが複数あって、詰まったところが大概どこかのサイトを参考にしたらうまく動いたから、すんなりいけた。
で、アドレスとパスワードの入力をしてみたら、エラー。
deviseでcontroller作っただけだとだめなのかしら。
ちょっと調べてみたら、もう少し続きがあるわけね。
明日はそこからスタートしよ〜。
<追記>
寝る前になって、やっぱり登録までは行きたいってふと思い、
再度カタカタ検索かけたらできた!
まず、登録のための入力をしたら、
user_idを入力してくださいっていうメッセージが表示されて登録できない原因は、
app/models/user.rbにあるバリデーションのせいだった。
参考にしてたサイトはversionが違ったからか、
validates :user_name, :presence => true
のような記述はなかったのに、なぜか俺のにはあった。
なのでこれをコメントアウトしたら登録できた。
(なぜかパスワードは8文字以上でって出たから、どこかにこれについての記述もあるんだろう)
その次に、登録できたかを確認するためにログインを行ったら、
devise.failure.user.unconfirmed
というアラートが出てきた。
これもすぐ解決できて、ユーザー登録の確認メールをユーザーに送信することがdeviseにはデフォルトで入っている(?)ため、
1つめのエラーと同じuser.rbで、
devise :database_authenticatable, :registerable, # :confirmable,
:recoverable, :rememberable, :trackable, :validatable
というふうに :confirmableをコメントアウト。
(※もしかしたら参考にしてるサイトで:confirmableって記述しろって書いてあって、自分で書き足したかもしれない。なんかそんな気がする)
これで先ほど登録した仮アドレスとパスワードでログインできた。
で、最後にログイン後にrootページに戻ってしまうのを戻すために、
app/controller/application_controller.rbで
def after_sign_out_path_for resource
diaries_path
end
def after_sign_in_path_for(resource)
diaries_path
end
と新たに付け加える。
詳しくはこのサイトで。
ということで今日はユーザー登録画面、ユーザー登録、ログイン、ログアウトまでできた。
ただあと2つ未完了の部分があって、
まず、登録後のページ遷移の設定ができてない。
http://d.hatena.ne.jp/akihito_s/20110723
それと、アラートが変なところがある。
おそらくapplication.html.erbに
<%= notice %>
<%= alert %>
を付け加えて、他にもどっかいじらないといけないのをしていないからなのかな?
ってことは明日はまずここをサクッと終わらせていきたい!