Ruby on rails 显示Dir.glob索引页中的特定图像

Ruby on rails 显示Dir.glob索引页中的特定图像,ruby-on-rails,dir,Ruby On Rails,Dir,我有一个产品控制器,可以在其中显示特定文件夹中的所有可用图像: def index @images = Dir.glob("app/assets/images/database/*.jpg") end 现在,我尝试将每个图像链接到一个单独的动态显示页面: def show @images = Dir.glob("app/assets/images/database/" + params[:id] + ".jpg") end 遗憾的是,我在相当长的一段时间内收到了一个错误“没有将nil

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

def index
  @images = Dir.glob("app/assets/images/database/*.jpg")
end
现在,我尝试将每个图像链接到一个单独的动态显示页面:

def show
  @images = Dir.glob("app/assets/images/database/" + params[:id] + ".jpg")
end
遗憾的是,我在相当长的一段时间内收到了一个错误“没有将nil隐式转换为字符串”

理想情况下,我希望自动呈现索引页上数据库文件夹中的所有图像,并将它们分别链接到show操作,在该操作中,我使用exifr获取关于每个图像的特定信息

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
classmyuploader
参数[:id]
为零。因此出现了错误。另外,当您想要一张图像时,为什么要使用
Dir.glob
呢?我不确定是否有其他方法:/因为您没有图像文件。您应该显式地创建它。