繁体   English   中英

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

[英]how to add image path in seeds.rb?

我需要在我的seeds.rb 中添加一个图像路径。 我所有的图像都在资产/图像/课程中我不明白如何在seeds.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",
    )

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

seed.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将返回一个带有 Rails 项目绝对路径的路径名 join方法可以接受任意数量的参数,并将它们附加到路径名以创建新路径。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM