4

CarrierWave レール アップローダーがあります。データベースに偽のユーザーをシードしたいので、同じシードファイルで画像を追加しようとしています。画像は共通のストレージにあるので、データベースでアバター文字列を取得できれば機能します。画像がついてないのにユーザーを救ったとき。

# db/seeds.rb
user1 = User.create :email => "test1@test.com", :password => "testing", :name => "Bob Dylan", :avatar => "v1357014344/bdylan.jpg"
user1.save

# IRB
User.first
=> #<User id: 1, email: "test1@test.com", name: "Bob Dylan", avatar: nil> 

> a = User.first
> a.avatar = "v1357014344/bdylan.jpg"
> a.save
 (10.7ms)  commit transaction
=> true 
> a
=> #<User id: 1, email: "test1@test.com", name: "Bob Dylan", avatar: nil> 
4

3 に答える 3

4

次の方法でデータを挿入する必要があります。

File.open(File.join(Rails.root, 'test.jpg'))

したがって、ユーザー作成全体は次のようになります

User.create :email => "test1@test.com", :password => "testing", :name => "Bob Dylan", :avatar => open("v1357014344/bdylan.jpg")

関連する質問

于 2013-01-01T05:58:46.417 に答える
1

データベースを直接更新し、CarrierWave をスキップするには:

model[:attribute] = 'url.jpg'
model.save
于 2015-03-16T21:18:45.023 に答える