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

时间:2012-07-02 23:29:45

标签: ruby sinatra

我有这段代码:

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

呈现视图时,我在ERB文件中获取HTML但布局文件不呈现。如果我将路线改为'/ users',一切都会好起来的。是什么赋予了?在找到关于如何执行此操作的示例代码并点击此问题后,我最初将用户ERB页面放在子目录“views / admin”中。我认为这是原因,但它似乎是导致问题的URL。有人打过这个或知道一个解决方法吗?

我所有其他观点也都很好。这是我尝试使用URL模式的第一个视图。我也试过这个,但它并没有影响任何事情。

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

感谢任何帮助。感谢。

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,请检查布局中您的资产的路径。您应该先添加/

<link href='/stylesheets/application.css' rel='stylesheet' type='text/css'>是正确的。

答案 1 :(得分:0)

如果您使用admin_users视图的子目录,则应将其保存为views/admin/users.erb,然后使用

进行渲染

获取'/ admin / users'   erb:'admin / users' 端

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

我猜你设置管理视图的视图目录与layout.erb文件的位置不同时会遇到麻烦。您是否尝试将假layout.erb放入views/admin/文件夹?

答案 2 :(得分:0)

您没有显示您获得的确切错误。我假设模板“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/admin_users.erb

中的布局在views/admin/layout.erb上呈现模板