Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从模型方法访问公用文件夹?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何从模型方法访问公用文件夹?

Ruby on rails 如何从模型方法访问公用文件夹?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想在模型中做一些类似的事情,使用公共文件夹(如db)保存文件 all_images = [] (1..100).each do |image_number| if File.exists?("/img/#{image_number}.jpg") # add image path to the list end end Rails有没有办法通过这种方式“查看”公共目录中的文件?您可以使用Rails.root.join('public'、'img'、'1.jpg')访问它

我想在模型中做一些类似的事情,使用公共文件夹(如db)保存文件

all_images = []
(1..100).each do |image_number|
   if File.exists?("/img/#{image_number}.jpg")
      # add image path to the list
   end
end

Rails有没有办法通过这种方式“查看”公共目录中的文件?

您可以使用
Rails.root.join('public'、'img'、'1.jpg')访问它。
我建议使用(来自rake gem)

如果使用,并且要检查资产是否存在,请在资产文件夹中查找:

 all_images = 1.upto(100).map do |image_number|
   path = Rails.root.join("assets/images/#{image_number}.jpg")
   path if File.exists?(path)
 end.compact
如果您的资产位于
public
文件夹中,除非您自己使用Rails<3和/或构建了一些资产管理扩展,否则不建议使用该文件夹(出于各种原因),您可以在那里查找该资产:

 all_images = 1.upto(100).map do |image_number|
   path = Rails.root.join("public/img/#{image_number}.jpg")
   path if File.exists?(path)
 end.compact

要检查文件是否存在,可以使用:

如果File.exists?(“{Rails.public_path}/img/{image_number}.jpg”)

无论文件系统是什么,这都会起作用:

如果File.exists?(File.join(Rails.public_path,“img”,“image_number}.jpg”)

要获取所有现有文件,您可以链接
#map
#select

all_images = (1..100).
  map { |i| File.join(Rails.public_path, "img", "#{i}.jpg") }.
  select{ |path| File.exists? path }

对如果您使用的是Rails 4,那么您需要查看。您的问题的答案已多次给出。因此,使用search next timeRails.root可能会让您感兴趣: