gpt4 book ai didi

ruby-on-rails-3.1 - 使用 Dir.glob 列出 Rails 3.1 中的 Assets ?

转载 作者:行者123 更新时间:2023-12-04 14:49:56 27 4
gpt4 key购买 nike

我试图从我的 /app/assets/images 内的子目录中随机选择一个图像目录使用 Dir.glob()命令,然后用 image_tag 显示它.不知何故,我无法让它工作。

这是我的代码:

- @badges = Dir.glob("app/assets/images/badges/*")
= image_tag @badges.sample

这会产生以下错误:
ActionController::RoutingError (No route matches [GET] "/assets/app/assets/images/badges/produce.png"):

如您所见, Assets 管道正在目录前插入一个“/assets”。好的,Rails,我会在这里见到你。所以接下来我尝试删除 /app/assets从查询路径使其工作并获得以下结果:
- @badges = Dir.glob("images/badges/*")
= image_tag @badges.sample

ActionController::RoutingError (No route matches [GET] "/assets"):

我在这里做错了什么?在此先感谢您的帮助!

最佳答案

Dir.glob将返回带有相对路径的图像,因此您的 produce.png文件将返回为:

`app/assets/images/badges/produce.png`

但是,您只需要通过 badges/produce.png部分至 image_tag .您需要在此之前删除这些东西:
= image_tag @badges.sample.gsub("app/assets/images/", "")

你可能想把它放在一个助手中:
def random_badge
badges = Dir.glob("app/assets/images/badges/*")
image_tag badges.sample.gsub("app/assets/images/", "")
end

然后在您看来:
= random_badge

关于ruby-on-rails-3.1 - 使用 Dir.glob 列出 Rails 3.1 中的 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009987/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com