使用carrierwave种子图像

时间:2017-12-05 08:53:55

标签: ruby-on-rails ruby carrierwave

我正在尝试创建一个使用rails API来显示和上传图像的Angular 4应用。使用rails API上传图像我决定使用carrierwave。我想知道的是如何播种一些初始图像并将URL存储在数据库中?以下是我在db.seed文件中所做的事情

Pictures.create!(
    image: Rails.root.join("C:/Ciaran/admin/src/assets/images/test_img1.jpg").open,
)

但是我的rails app文件夹中存储的图像在哪里?我什么都看不到。

当我在MySQL中检查图片列中的图片表时,整个网址只显示test_img1.jpg?如何让它显示完整的网址?

所以基本上如果有人了解有关rails和carrierwave的更多信息,请向我解释:

  1. 对于我上面显示的代码片段,是否会将该图像副本创建到我的rails应用程序中?因为我在播种数据库后没有在任何应用文件夹中看到它?

  2. 为什么数据库表中没有显示完整的网址以供图片显示,如何让它显示完整的网址,以便我可以从我的角度前端访问它?

  3. 感谢您的帮助

1 个答案:

答案 0 :(得分:0)

1 - 在你的app文件夹中应该有一个名为image_uploader.rb的文件。并且它应该有一个def store_dir,表示您的文件存储在哪里。

2 - 因为基于上面的image_uploader.rb配置文件生成了完整的URL。例如,如果模型实例变量是@picture

,则可以简单地获取URL
@picture = Picture.first
@picture.image.thumb.url