1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rails db:seed 後、viewでのエラー

Posted at

##seedのデータをいれた後にviewで@user.imageが無いと怒られた

seed.rb
#テストユーザーの作成
user1 = User.create(
        name: "test"
        email: "test@gmail.com"
        password: "testtest"
        passwoed_confirmation: "testtest"
        )

よし 

#docker使っているので
$ docker-compose run --rm web rails db:seed

#docker使っていなければ
$ rails db:seed

これで完璧! と思ったら、、、

@user.imageなんてないだよね~って怒られました。

いやいや、controllerでimageつけてますがな!

controllers/user_controller
def create
  @user = User.new(user_params)
  if !@user.image.attached?
    image_path  = Rails.root.join('app/assets/images/user_default.png')
ここ→@user.image.attach(io: File.open(image_path), filename: 'user_default.png')
  end
  @user.save
end

と思っていたけどそんなの関係ないんだよね。

てことで

seed.rb
image_path  = Rails.root.join('app/assets/images/user_default.png')
user1.image.attach(io: File.open(image_path), filename: 'user_default.png')

追加してあげて(画像の投稿機能にactive storage 使ってます)

#emailに一意性つけてるのでdb削除からのmigrate
$ docker-compose run --rm web rails db:migrate:reset

$ docker-compose run --rm web rails db:seed

はいエラーはかないから僕の勝ち。

こんな事にならないように

imageバリデーションかけておいたほうが安全かもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?