【问题标题】:Showing Specific image from Dir.glob index page显示来自 Dir.glob 索引页面的特定图像
【发布时间】:2015-12-16 19:32:24
【问题描述】:

我有一个产品控制器,我可以在其中显示某个文件夹中的所有可用图像:

def index
  @images = Dir.glob("app/assets/images/database/*.jpg")
end

现在我正在尝试将每个图像链接到一个单独的动态显示页面:

def show
  @images = Dir.glob("app/assets/images/database/" + params[:id] + ".jpg")
end

很遗憾,我在很长一段时间内收到了一个错误"no implicit conversion of nil into String"

理想情况下,我想自动渲染索引页面上数据库文件夹中的所有图像,并将它们单独链接到我使用 exifr 获取有关每个图像的特定信息的显示操作。

【问题讨论】:

  • params[:id] 为零。因此错误。另外,当你想要一张图片时,为什么要使用Dir.glob
  • 我不确定其他方法:/

标签: ruby-on-rails dir


【解决方案1】:
def show
  @images = Dir.glob("app/assets/images/database/" + params[:id] ||
                     "no-image" + ".jpg")
end

这不是一个好习惯。您应该使用任何图像上传器并设置默认图像。例如。对于 CarrierWave:

class MyUploader < CarrierWave::Uploader::Base
  def default_url(*args)
    "/images/fallback/" + [version_name, "default.png"].compact.join('_')
  end
end

【讨论】:

  • 因为那里没有图像文件。你应该明确地创建它。
猜你喜欢
  • 2019-05-23
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 2020-08-17
  • 2016-01-02
  • 2021-05-02
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多