내 응용 프로그램/색인에서 사용자는 드롭 다운 목록에서 위치 및 디렉토리 경로를 선택합니다. onchange 이벤트는 path를 취하는 file_dir이라는 컨트롤러를 호출하고, 그 디렉토리에있는 파일 목록을 매개 변수 @files로 다시 전달하는 명령 행 호출을 실행합니다. 그런 다음이 @files를 부분 변수로 전달합니다. 그런 다음 부분에 select 태그가 전달 된 파일 목록과 함께 표시됩니다.파일의 동적 목록을 partial에 전달하는 데 도움이 필요합니다. 레일에서 성공적으로 통과 할 목록을 가져올 수 없습니다.
ROR을 처음 사용하고 읽을 수있는 로컬 변수를 성공적으로 전달하지 못했습니다. 부분적으로. 모든 것은 하드 코딩 된 라인으로는 잘 동작하지만 로컬 변수에서는 그렇지 않습니다.
이 질문에 유래 stackoverflow.com, 여기
디렉토리받는 제 onchange를 드롭 패스 호출 방법이다 : I 테스트 IRB에서def file_dir
unless params[:dir_list].nil?
@dir_path_choice = params[:dir_list]
else
@dir_path_choice = '/watchfolder/indemandvod'
end
# @files = "#{@dir}"
@files = Dir.glob("#{@dir_path_choice}/**/*.{mpg,mov}").map
if @files.nil?
@files = Dir.glob("/watchfolder/hbovod/**/*.{mpg,mov}").map
end
render :partial => 'list_files', :locals => { @list => @files }
end
를 @files = Dir.glob ("# {@ dir_path_choice}/**/* . {mpg, mov} "). 맵 라인이 제대로 처리되고 있는지 확인하십시오. 다음은 @ 파일의 모습입니다.
1.9.3-p547 :008 > @files
=> #<Enumerator: ["/watchfolder/indemandvod/MJR-TEST.mov", "/watchfolder/indemandvod/MJR-TEST-AWS1.mov", "/watchfolder/indemandvod/MJR-TEST-AWS.mov", "/watchfolder/indemandvod/MJR-TEST2.mov", "/watchfolder/indemandvod/PIX_Gor_SVO40185/PIX_Gor_SVO40185_mezz.mov"]:map>
이 데이터는 선택 목록에서 쉼표로 구분됩니다.
참고 : @ 기호없이 @list를 전달하려고 시도했지만 알 수없는 지역 변수 또는 메서드가있어서 @를 추가하지 않고 실행할 코드를 가져올 수 없습니다. 이것은 데이터 콜렉션과 같아서 배열로 해석 할 것으로 기대합니다. 확실하지. 여기
이 부분 파일 코드 :<p>
<label>Select Partial Test File List:</label><%= @list %><br />
<% unless @list.nil? %>
<%= @list %>
<% else %>
<label> list is empty. </label>
<% @list = Dir.glob("/watchfolder/showtimevod/**/*.{mpg,mov}").map %>
<% end %>
<%= select_tag 'filepath', options_for_select(@list, @selected_filepath) %>
</p>
그것은 페이지에 다시 표시 않으며, 내 항상 '목록이 비어'가 표시되며 드롭 다운 상자 내 기본으로 채 웁니다에 대한 명령 줄을 '하드 코딩' '/ watchfolder/showtimevod/'파일 목록.
@selected_filepath는 목록에서 선택된 행을 유지합니다.
값을 부분 값으로 전달할 때 내가 잘못하고있는 것을 알지 못합니다.
내 응용 프로그램/인덱스에서
'@ list' 부분적인 참조? 오류 메시지 만 표시 했으므로 매우 명확하지 않습니다. –