技術

[Rails]rake db:seedに成功しているのにuserテーブルにデータが作成されない!

投稿日:

こんにちは。たなかです。

railsで開発してて、seedファイルがうまく流し込めない症状で躓いたので備忘録的にメモです。

 

症状

seedファイルを作成し、rails db:seedでダミーデータの流し込みを行います

root@1f60d27bd094:~# rake db:seed
root@1f60d27bd094:~#

エラーもなく成功してるっぽいです。

sequel Proで確認してみます。

 

 

空っぽです……なぜなんだ!

 

解決方法

deviseで作成されたusersテーブルにseedsでユーザーを生成するときは、
書き方に注意しなければならない!

seedファイルを以下のように書いていましたが…

User.create(:email = 'xxx@xxx.com', :encrypted_password = 'xxxxxxxxxxxxxxxxxxx')

 

以下のように書き換える必要がありました!

users= [
{ username: 'kanritarou', email: 'kanri1@yahoo.com', password: 'test1' },
{ username: 'kanrijirou', email: 'kanri2@yahoo.com', password: 'test2' },
]
users.each do |record|
 User.create!(record) unless User.find_by(email: record[:email])
end

 

まとめ

「encrypted_password」はあくまで、暗号化された文字列を格納しておくカラム。

seedの流し込みであっても、「password」として入力したものを自動的に暗号化してから格納するという手順が必要なようでした。

devise……奥が深いっす。
短いですが今回はここまで。

参考サイト

https://qiita.com/dayone80/items/8eb903fcf083b30a17a4

-技術
-

執筆者:


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

関連記事

[Ionic] error: archive not found at path ‘platforms/ios/〇〇.xcarchive’ ** EXPORT FAILED **

こんにちは。たなかです。   Ionicを利用したアプリ開発もラストス …

no image

【Rails】Railsでsitemap.xmlを作成する

こんにちは Railsでsaitemap.xmlを作成する方法を紹介します。 s …

no image

BitbucketからGithubの移行で、しょうもなくハマる。

こんにちはー。コーテッグのこやまです。 コーテッグはずっとBitbucketを使 …

no image

[Angular]リアクティブフォームでバリデーション名を動的に出し分ける。

Angularのリアクティブフォームのカスタムバリデーションで、動的にエラー名を …

どうも中田です。 Rails5.2から config/credentials.y …