2012-10-23 19 views
4

對那些幫助..謝謝。仍然沒有解決辦法,但接近。我認爲這些錯誤是因爲我的「文件」評估爲「app/views/main/show/_partial.html.erb」。並渲染添加它自己的相對路徑。所以我想我需要列出文件名..也許dir.foreach或dir.glob類型命令..我會繼續挖掘。謝謝!軌道紅寶石迭代目錄中的偏見

我有一個目錄充滿泛音我想在一個頁面調用。所以我寫了一個循環,但它會產生錯誤。

<% Dir["app/views/main/show/*"].each do |file| %> 
    <%= render #{file} %> 
<% end %> 

當我更換一個簡單的

文件

渲染管線它列出的文件名,所以我知道環路和迪爾位置工作。我認爲,渲染正在尋找一個字符串。所以我嘗試了各種搜索谷歌的東西,比如#{file},首先創建一個變量,raw,...等等。

也是我想呈現相對的風向可能會尋找不同的目錄。我會在那裏嘗試一些東西。

我應該如何處理被這個?我願意從Dir轉換到Dir.foreach或其他有意義的策略。

謝謝。

編輯:這裏的解決方案,我已經實現了(從上面改目錄路徑):

<% Dir["app/views/partials/show/*.html.erb"].each do |file| %> 
<p> <%= render 'partials/show/' + File.basename(file,'.html.erb').slice!(1..-1) %></p> 
<% end %> 
+1

我認爲它應該是<%=渲染:部分=>「#{}文件」%> – Raghu

+0

什麼是你在循環獲取文件對象。你能爲我打印嗎?還有什麼是你的在我的上述解決方案中看到的錯誤does not工作 – Raghu

+0

感謝您的幫助...文件是partials「_part1」,「_part2」...等...錯誤類似於下面的評論:缺少部分應用程序/ views:/ main/show/_scene1.html with {:locale => [:en],:formats => [:html],:handlers => [:erb,:builder,:coffee]}。搜查: *「C:/ railsProjects/introAnime /應用/視圖」 – twinturbotom

回答

8

file已經是一個字符串,所以沒有必要逃跑。此外,你必須提供完整的路徑。這應該工作:

<% Dir["app/views/main/show/*"].each do |file| %> 
    <%= render :file => Rails.root.join(file).to_s %> 
<% end %> 

#{}只適用於雙引號內。例如。 "#{file}",但在這種情況下,這不是必需的。你可以使用file

+0

感謝您的清晰度,但一定有東西了渲染和DIR參考then..your建議收益率:缺少的部分應用程序/視圖/主/顯示/ _scene1.html與{:locale => [:en],:formats => [:html],:handlers => [:erb,:builder,:coffee]}。搜索: *「C:/ railsProjects/introAnime/app/views」 – twinturbotom

+0

我更新了我的答案。請再試一次。 – Mischa

+0

看起來不錯,但得到了這個錯誤:缺少部分C:/railsProjects/introAnime/app/views/main/show/_scene1.html與{:locale => [:en],:formats => [:html],:handlers => [:erb,:builder,:coffee]}。搜索: *「C:/ railsProjects/introAnime/app/views」 – twinturbotom