我目前使用cities gem填充数据库中的城市列表以创建地址。我被要求删除这个宝石,并阅读城市宝石随附的城市文件夹中的所有json文件。遍历给定目录中的所有文件
我已经看过关于如何做到实现这一点,包括一些SO帖子:Iterate through every file in one directory
实施后机智Dir.glob
,我的应用程序只是完全崩溃的特定网页上,并退出/退出服务器。
否则,Dir.foreach
,我得到
Errno::ENOENT in StuffsController
No such file or directory @ dir_initialize
对于这个错误,我试过this SO post但意识到,我真的不能更新我的Gemfile因为它会导致更多的问题给我。
这里是我的代码产生Errno::ENOENT
:
@okay = Array.new
Dir.foreach("#{Rails.root}/cities/*.json") do |json_file|
@okay << JSON.parse(File.read(json_file))
end
我也曾尝试下面的代码从this SO post却收到一个
NameError in StuffsController
undefined local variable or method `id' for # <StuffsController>
@okay = Array.new
Dir.foreach("#{Rails.root}/cities/#{id}.json") do |json_file|
@okay << JSON.parse(File.read(json_file))
end
我可以得到它从读取单个文件该文件夹就好了,100%没问题:
@cities = Array.new
@json = JSON.parse(File.read('cities/AD.json'))
@json.each do |j|
if j.second.has_key?("accentcity")
@cities << j.second.select {|k,v| k == "accentcity"}
name = j.second.select {|k,v| k == "accentcity"}
City.first_or_create(name: name)
end
end
(请注意,@cities
数组主要用于测试我的方法是否生成我想要的数据)
我正在使用Ruby on Rails 4.2.6版。
什么用水珠您的应用程序崩溃后的日志文件包含? –