2013-08-18 3 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

비어 있지 않은 디렉토리를 웹 브라우저에 표시하려고합니다. 파일이 들어있는 디렉토리가 표시됩니다. 여기에 비어 있지 않은 모든 디렉토리에 대해 'at'유형의 디렉토리를 저장하려고합니다. 그래서 내가 폴더가 2 개 있다고하자. a = empty; b = full. 나는 둘 다 검사한다. 값 "b"를 저장합니다. "b"는 'at'유형입니다. 그런 다음 내 견해로는 저장된 값을 사용하여 가득 찬 디렉토리 중 @ 유형 만 표시 할 수 있습니다. – DDDD

답변

0

이 일 것입니다 pty가 basename을 배열로 푸시합니다.

1

1) File.exists가 있는지 확인하는 이유는 무엇입니까? 방금 디렉토리를 globed 했으므로 결과의 각 항목은 실제로 존재합니다.

2)

나는 단지 빈 디렉토리의 @type을 저장할.

@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 

이 각 디렉토리를 통해 이동하고 그렇지 않은 경우 그들을 :

@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은 filename의 약자이며 unix world filename은 디렉토리 이름 또는 파일 이름을 의미합니다. 디렉토리 이름 = # {directory_path}/# {@ filter}/# {@ type} "'Dir.entries는 Dir.glob와 비슷합니다. 그러나 Dir.entries는 또한 숨겨진 파일, 즉'.bash_profile'과 같이 점으로 시작하는 파일명을 반환합니다. 각()을 호출 할 필요는 없으며'if Dir.glob (directory) .empty?'Dir을 쓸 수 있습니다. .glob가 배열을 반환합니다. 비어 있으면 디렉토리가 비어 있습니다 (숨김 파일을 허용합니다). – 7stud

+0

"directory_path"의 모든 디렉토리를 검색합니까? – DDDD

관련 문제