Ruby 当URL有2个子级别时,Sinatra未加载布局文件

Ruby 当URL有2个子级别时,Sinatra未加载布局文件,ruby,sinatra,Ruby,Sinatra,我有以下代码: # Users page get '/admin/users' do @title = "Admin - Users" erb :admin_users end 渲染视图时,我在ERB文件中获得HTML,但布局文件不渲染。如果我将路由更改为“/users”,则所有内容都会呈现良好效果。有什么好处?在找到关于如何执行此操作的示例代码后,我最初将UsersERB页面放在“views/admin”子目录中,并讨论了此问题。我认为这是原因,但似乎是URL造成了问题。还有谁打过这

我有以下代码:

# Users page
get '/admin/users' do
  @title = "Admin - Users"
  erb :admin_users
end
渲染视图时,我在ERB文件中获得HTML,但布局文件不渲染。如果我将路由更改为“/users”,则所有内容都会呈现良好效果。有什么好处?在找到关于如何执行此操作的示例代码后,我最初将UsersERB页面放在“views/admin”子目录中,并讨论了此问题。我认为这是原因,但似乎是URL造成了问题。还有谁打过这个或者知道什么工作吗

我的其他观点也都很好。这是我第一次尝试URL模式。我也试过了,但没有任何效果

# Users page
get '/admin/users' do
  @title = "Admin - Users"
  erb :admin_users, :layout => :layout
end

感谢您的帮助。谢谢。

如果您为
管理员用户
视图使用子目录,您应该将其保存为
视图/admin/users.erb
,然后使用

获取“/admin/users”do 雇员再培训局:'管理员/用户' 结束

也许这已经解决了你的问题。如果你需要更多的帮助,请告诉我


我想,如果为管理员视图设置的视图目录与
layout.erb
文件的位置不同,您可能会遇到麻烦。您是否尝试过将虚拟
布局.erb
放入
视图/admin/
文件夹中?

如果您为
管理员用户
视图使用子目录,您应该将其保存为
视图/admin/users.erb
,然后使用

获取“/admin/users”do 雇员再培训局:'管理员/用户' 结束

也许这已经解决了你的问题。如果你需要更多的帮助,请告诉我


我想,如果为管理员视图设置的视图目录与
layout.erb
文件的位置不同,您可能会遇到麻烦。您是否尝试将虚拟
布局.erb
放在
视图/admin/
文件夹中?

我也遇到同样的问题,请检查布局中指向您资产的路径。您应该在之前添加
/


是正确的。

我也遇到了同样的问题,请检查布局中指向您的资产的路径。您应该在之前添加
/


是正确的。

您没有显示您得到的确切错误。我假设模板“admin_users.erb”是“没有这样的文件或目录”

您的“erb”电话中缺少一个选项,您应该告诉Sinatra在哪里可以找到模板。这对我来说很有效:

# Users page
get '/admin/users' do
  @title = "Admin - Users"
  erb :'admin/admin_users', :layout_options => { :views => 'views/admin' }
end

它使用
views/admin/layout.erb
中的布局在
views/admin/admin\u users.erb
上呈现模板。您没有显示您得到的确切错误。我假设模板“admin_users.erb”是“没有这样的文件或目录”

您的“erb”电话中缺少一个选项,您应该告诉Sinatra在哪里可以找到模板。这对我来说很有效:

# Users page
get '/admin/users' do
  @title = "Admin - Users"
  erb :'admin/admin_users', :layout_options => { :views => 'views/admin' }
end

它使用
views/admin/layout.erb
中的布局在
views/admin/admin\u users.erb

上呈现模板。您描述的所有内容都是我最初尝试的内容。我将users.erb放在views/admin文件夹中,并将路由设置为从erb:'admin/users'呈现'/admin/users',得到了相同的结果。它呈现得很好,但没有布局页面。然后我将layout.erb复制到该文件夹中,认为它可能与视图位于同一文件夹中,这无关紧要。我还更改了复制的布局文件的名称,并执行了erb:'admin/users',layout=>admin\u layout,这也没关系。您描述的所有内容都是我最初尝试的内容。我将users.erb放在views/admin文件夹中,并将路由设置为从erb:'admin/users'呈现'/admin/users',得到了相同的结果。它呈现得很好,但没有布局页面。然后我将layout.erb复制到该文件夹中,认为它可能与视图位于同一文件夹中,这无关紧要。我还更改了复制的布局文件的名称,并执行了erb:'admin/users',layout=>admin\u布局,这也没关系。