Я использую Carrierwave для загрузки изображений, связанных с моей моделью пользователя, которая имеет соответствующий атрибут picture
, который содержит имя файла изображения в строковом поле.Обычно имя загруженного изображения хранится в public/uploads
.
Теперь я хотел бы заполнить свою базу данных разработки примерами пользователей, включая связанный путь к изображению профиля.Я пытался сохранить свои pic1.jpg
, pic2.jpg
, pic3.jpg
изображения в public/images
и ссылку на эти изображения в db/seeds.rb
как picture: '/images/pic1.jpg'
и т. Д., Как предложил Грант Нойфельд в старом вопросе stackoverflow .В представлении изображение включается с использованием следующего кода:
<%= image_tag @user.picture.url if @user.picture? %>
Однако это не работает, изображение не загружается в поле зрения, поскольку атрибут изображения равен нулю.Я также пытался сохранить свои фотографии в app/assets/images
и ссылаться на них как picture: 'pic1.jpg'
, picture: 'pic2.jpg'
, picture: 'pic3.jpg'
в db/seeds.rb
без результата.
Ниже мой db/seeds.rb
файл:
User.create!(name: "Example User",
email: "example@railstutorial.org",
password: "foobar",
password_confirmation: "foobar",
admin: true,
politics: 'left',
car: true,
pets: 'I like horses and bears',
music: 'American country and folk',
picture: 'pic1.jpg',
profile: 'I like music and the Ruby and Python programming languages',
activated: true,
activated_at: Time.zone.now)
User.create!(name: "Super-friendly User",
email: "example-101@railstutorial.org",
password: "PassWord-0",
password_confirmation: "PassWord-0",
admin: true,
smoker: true,
politics: 'left',
car: true,
pets: 'I like turtles and whales',
car_pets: true,
music: 'Jazz and blues',
picture: 'pic2.jpg',
profile: 'I like music and drinking',
activated: true,
activated_at: Time.zone.now)
User.create!(name: "Friendly User",
email: "example-102@railstutorial.org",
password: "PassWord-0",
password_confirmation: "PassWord-0",
politics: 'right',
car: true,
pets: 'I like snakes and gorillas',
music: 'pop and classics',
picture: 'pic3.jpg',
profile: 'I like music and hiking',
activated: true,
activated_at: Time.zone.now)
99.times do |n|
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
password = "password"
User.create!(name: name,
email: email,
password: password,
password_confirmation: password,
activated: true,
activated_at: Time.zone.now)
end