在user.rb中
class User <ApplicationRecord mount_uploader:picture,PictureUploader end
在picture_uploader.rb中
class PictureUploader <CarrierWave :: Uploader :: Base
包括Cloudinary :: CarrierWave
存储:文件
#对于要安装的上传者,这是一个合理的默认值:
def store_dir“uploads /# /# /#”end
结束
在environement.rb中
require_relative'application'
初始化Rails应用程序
Rails.application.initialize!
需要'carrierwave / orm / activerecord'
在_form.html.erb中
<%= form.label :picture %>
<%= form.file_field :picture, id: :user_picture %>
在迁移中
class CreateUsers <ActiveRecord :: Migration [5.1]
改变
create_table:用户做| t |
t.string :email
t.string :picture
t.timestamps
end
结束
结束
最后,User.picture_url是Cloudinary上的网址,但此网址上没有上传任何图片 .
如果我键入rails c Cloudinary :: Uploader.upload('/ home / my_image.jpg')它就可以工作
2 回答
Cloudinary的热线是:
“请在/app/uploader/pictures_uploader.rb中注释第10行和第15-17行”
#storage:file
#def store_dir#“uploads /# /# /#”#end
它有效 .
你在
app/assets/javascript/application.js
中添加了吗?并在
app/views/layouts/application.html.erb
并在
application.yml
(你将在你的cloudinary设置中找到你的)你的show.html.erb :)中的问题更多
这里的设置只是一个例子,但你需要
@user.picture.path
来显示你的图片:)更多信息在这里https://cloudinary.com/documentation/rails_image_manipulation