2013-08-18 80 views
0

我需要知道一個目錄是否爲空,以便它們不會顯示。如何在控制器中創建實例變量並在視圖中使用實例變量?

試圖存儲:如果一個目錄有文件;然後我會在視圖中調用它。

def index 
    @filter = params[:filter] 
    @type = params[:type] 
    @content = [] 

if @filter 
directory_path = "public/files/marketing/voip" 
directory = Dir.glob("#{directory_path}/#{@filter}/#{@type}") 
directory.each do |data| 
if File.exists?(data) && !File.directory?(data) 

    @content = Array.new("#{@type}") 

end 
@view = 'types' 
end 
end 

我不知道如何存儲信息,在這裏我想存儲只有空目錄的@type。

然後在視圖中調用@content以顯示具有存儲的@type的目錄。

+0

你能提供更多的上下文,也許是一個具體的問題嗎?在控制器中創建的任何實例變量都可以在相應的視圖中找到。 –

+0

我想在不爲空的Web瀏覽器上顯示目錄。將顯示包含文件的目錄。在這裏,我試圖爲每個非空目錄存儲目錄的'at'類型。所以說我有2個文件夾,a =空; b =完整。我掃描兩者。我存儲值「b」。 「b」將是'at'類型。然後在我看來,我可以使用存儲的值來僅顯示那些已滿的目錄。 – DDDD

回答

0

這是什麼工作:

@view = 'types' 

      #Loop through directories to see if files exist 
     #If files exist add directory name to @array 
     @directories = Array.new 
     @all_directories = Dir.glob("public/files/marketing/voip/#{@filter}/*") 
     @all_directories.each do |directory| 
      base_directory = Dir.glob("#{directory}/*") 

      unless base_directory.empty? 
       @directories.push(File.basename(directory)) 
      end 

此經過的每個目錄,如果它不是EM pty將基本名稱推送到我的數組中。

1

1)爲什麼你要檢查File.exists?您只是將目錄放在一邊,因此結果中的每個項目確實存在。

2)

我想只存儲空目錄的@type。

@empty_dir_types = [] 

... 


    fname = "...." 

    if Dir.entries(fname).empty? 
    @empty_dir_types << File.basename fname 
    end 

或者,

@type = params[:type] 
@empty_dir_types = [] 

... 

    fname = "...." 

    if Dir.entries(fname).empty? 
    @empty_dir_types << @type 
    end 

或者,

@type = params[:type] 
@empty_dir_type = nil 

fname = "...." 

if Dir.entries(fname).empty? 
    @empty_dir_type = @type 
end 
+0

fname是我的目錄嗎?我不需要目錄= Dir.glob(...?或者.each do | data |? – DDDD

+0

@DDDD:是的,fname是文件名的縮寫,而在unix世界中,文件名意味着目錄名或文件名。或者,使用你自己的變量名稱:'directory =「#{directory_path} /#{@ filter} /#{@ type}」'Dir.entries類似於Dir.glob ,但是Dir.entries也返回隱藏文件,即以點開頭的文件名,例如'.bash_profile'。你不需要調用each(),你可以直接寫'if Dir.glob(directory).empty?'Dir .glob返回一個數組 - 如果它是空的,則該目錄爲空(接受隱藏文件)。 – 7stud

+0

這是否搜索主目錄「directory_path」中的所有目錄? – DDDD

相關問題