Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 中间人中的本地数据(JSON)位于与/data不同的路径中_Ruby On Rails_Ruby_Json_Haml_Middleman - Fatal编程技术网

Ruby on rails 中间人中的本地数据(JSON)位于与/data不同的路径中

Ruby on rails 中间人中的本地数据(JSON)位于与/data不同的路径中,ruby-on-rails,ruby,json,haml,middleman,Ruby On Rails,Ruby,Json,Haml,Middleman,我正在使用一些模板来生成一个包含多个页面的静态站点。这些页面中的每一个都位于不同的文件夹中,因此它基本上是一个类似于/source/pages/page-1/index.html.erb的路径 例如,我想要实现的是将data.json文件放在文件夹page-1中,并使用Middleman将其内容提取到同一文件夹中的index.html.erb文件中。问题是Middleman要求所有的.json文件都在/data中,而我需要每个data.json文件都在自己的文件夹中 有没有办法让Middlema

我正在使用一些模板来生成一个包含多个页面的静态站点。这些页面中的每一个都位于不同的文件夹中,因此它基本上是一个类似于/source/pages/page-1/index.html.erb的路径

例如,我想要实现的是将data.json文件放在文件夹page-1中,并使用Middleman将其内容提取到同一文件夹中的index.html.erb文件中。问题是Middleman要求所有的.json文件都在/data中,而我需要每个data.json文件都在自己的文件夹中

有没有办法让Middleman为每个文件夹分别提取每个.json文件


我希望我说得够清楚了。任何帮助都是非常欢迎的。

我认为做这样的事情是不可能的。看起来目录已定义

但是!您应该能够更改整个数据目录的位置:

set :data_dir, 'source/data'
after_configuration do
  data.categories.each do |category, data|
    proxy "/#{category}.html", "/category.html", locals: {category: data}
  end
end
这样做的原因是将所有数据分组在一个地方

您可以制作如下内容:

data
|-- page1
|    |-- content1.yml
|    +-- content2.yml 
|
|-- page2
|    |-- content1.yml
|    +-- content2.yml
.
.
并使用data.page1.content1提取它


我期待着看到是否有人有黑客攻击。

您可以尝试编写一个助手方法,用于查找、加载和解析当前页面的de JSON数据。我还没有实际测试过这个,但我猜它看起来像这样:

config.rb 帮手 def json_datafilename=data.json container\u dir=File.splitcurrent\u resource.path.first.splitFile::SEPARATOR.first json_path=File.joinsource,容器目录,文件名 ActiveSupport::JSON.decodio.readjson_路径 终止 终止
谢谢你的建议,拉杜博格丹。如果什么都没有出现,我可能会做类似的事情。我已经决定将所有信息作为一个数组放入/data中,并在每个页面中提取出来,但这可能正是我想要的。