在我的應用程序/索引中,用戶從下拉列表中選擇一個位置和目錄路徑。 onchange事件會調用名爲file_dir的控制器,並在其中接受路徑,執行命令行調用,將該目錄中的文件列表傳回參數@files。然後我將這個@files部分傳遞給一個局部變量。然後在部分選擇標籤將顯示傳遞給它的文件列表。需要幫助將動態文件列表傳遞給partial。無法在列表中成功通過列表
我是ROR的新手,無法成功傳遞可讀的局部變量。到部分。一切工作正常與硬編碼線,但不是局部變量。
有人可以請幫助建議我正確的方式來設置?
這裏是接收的目錄從所述第一平變化下拉通調用的方法:所述@files = Dir.glob(「#{@ dir_path_choice}/**/*
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
在IRB我測試。{mpg,mov}「)。map行來確保這個處理正確。以下是@files的樣子:
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'搶走了'@'在控制器中,你也把它遠離所有的部分中的'@ list'引用?你只給了我們一部分錯誤信息,所以它很不清楚。 – 2014-10-11 04:41:49