如何在seeds.rb 中添加图片路径?

Posted

技术标签:

【中文标题】如何在seeds.rb 中添加图片路径?【英文标题】:how to add image path in seeds.rb? 【发布时间】:2021-12-14 12:49:56 【问题描述】:

我需要在我的seeds.rb 中添加一个图像路径。我所有的图片都在资产/图片/课程中 我不明白如何在种子.rb 中正确地将图像路径添加到我的课程中

Course.create!(
    name: "Art",
    description: "In this beginner's art class learners will meet to create nature inspired artwork!
                Perfect class for Pre-Kindergarten, Kindergarten, 1st grade & 2nd grade artists
                (UK: Reception, Year 1, Year 2, Year 3)- with science & a touch of geography.",
    tags: "#art #image #kids",
    ages: "4 - 13",
    minsize: 4,
    maxsize: 7,
    duration: 45,
    price: 10,
    image_url: "images/courses/art1.jpg",
    )

【问题讨论】:

我认为问题不在于 seeds.rb 文件,而在于您访问该 URL 的视图。 【参考方案1】:

如果您只需要保存该图像的相对路径以便稍后在您的视图中呈现它,您可以使用 image_path 方法从 rails assets 文件夹中提取该图像

seeds.rb 不会自动加载这些帮助程序,因此您需要像这样从 ActionController::Base 类中引用它以使其工作:

ActionController::Base.helpers.image_path('courses/art1.jpg')

所以在你的例子中你需要这样写:

Course.create!(
  name: "Art",
  description: "In this beginner's art class learners will meet to create nature inspired artwork!
              Perfect class for Pre-Kindergarten, Kindergarten, 1st grade & 2nd grade artists
              (UK: Reception, Year 1, Year 2, Year 3)- with science & a touch of geography.",
  tags: "#art #image #kids",
  ages: "4 - 13",
  minsize: 4,
  maxsize: 7,
  duration: 45,
  price: 10,
  image_url: ActionController::Base.helpers.image_path('courses/art1.jpg')
)

无关但可能有用的信息

如果您在某个时候更改课程模型以支持图像上传,那么您会发现拥有文件的实际 FilePath 很方便,因此您可以将其用作种子代码中的文件:

Rails.root.join('app', 'assets', 'images', 'pic1.jpg')

Rails.root 将返回一个 Pathname,其中包含您的 rails 项目的绝对路径。 join 方法可以接受任意数量的参数,并将它们附加到路径名以创建新路径。

路径名对于文件方法和图像上传实现很有用

【讨论】:

以上是关于如何在seeds.rb 中添加图片路径?的主要内容,如果未能解决你的问题,请参考以下文章

HTML中添加图片的代码是什么?html如何正确的添加图片路径?

qt窗口设置背景图片文件路径

Hexo博客中如何插入图片

我在jsp页面上添加百度地图时,添加图片无法显示

如何在 Amazon ec2 上运行 seed.rb 文件

html:如何去除插入图片底部的留白?