新手,正在过一遍 AWDwR 一书。
在练习第一个 Hello Goodbye 示例的时候遇到的一个问题,在快结束时,有一个部分叫做 Playtime,里面有一个返回当前目录文件列表的方法,写为:
@files = Dir.glob('*')
之后在模板里遍历显示,写为:
<% for file in @files %>
file name is: <%= file %>
<% end %>
我照着试了一下,但是没有任何输出,也没有出错,请问何解?
我是按照这本书的配置一步一步做下来的,ruby / rails 等的版本都和书中保持一致,并且其他的范例目前都很正常,没有出过任何问题。
我是新手,还没有学到 route 的部分,所以我很难说是否配置的正确。不过我想,按照书里做的,没道理错吧?(书都第四版了,要是有问题早都应该被指出了才对)
呃,我也翻了下书,的确有这个例子。真奇怪会用 for 不是 each。不过我随手在随意一个小项目上照着写,但是我能得到输出。你确定你写的 controller、action 和 view 对应正确了?然后 url 输入也是对应上了?
试试检查 Dir.glob('*') 是否有内容
@length = @files.length
<%= @length %>
或者
<% if @files.empty? %>
files is empty
<% end %>
#3 楼 @nightire ,@files = Dir.glob("*"),测试过了。木有问题啊。可以考虑设置一下绝对路径。 如 Dir.glob("#{Rais.root}/app/views"); 具体参见:http://ruby-doc.org/core-1.9.3/Dir.html#method-c-glob