我对ruby和RoR很新,所以请原谅我的新手。 我想在rails应用程序中打印给定目录中的完整文件夹列表。以下是我在show.html.erb文件中使用的代码。
<%= dir = Dir.entries(path_to_my_directory)
dir.each do |folder|
puts folder
end %>
Dir.entries方法返回一个数组,其中包含指定目录中所有文件夹的名称。我遍历这个数组并打印每一个值。 但是在我的应用程序中,这将打印完整的数组,如下所述。
[".", "metadata.rb", "attributes", "libraries", "CHANGELOG.md", "recipes", "..", "files", "templates", "providers", "resources", "definitions", "README.md"]
我尝试了其他方法遍历数组,但输出保持不变。单独运行时此代码会产生预期的输出,但是当从我的视图中运行时,它似乎不起作用。关于我可能出错的地方的任何建议。 提前谢谢。
答案 0 :(得分:1)
您无法在erb中使用puts
。找出<% %>
(处理Ruby代码)和<%= %>
(处理和输出附带的Ruby代码)之间的区别。你想做的是:
<%
dir = Dir.entries(path_to_my_directory)
dir.each do |folder|
%>
<%= folder %>
<% end %>