gpt4 book ai didi

ruby - Sinatra设置布局的方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:02 24 4
gpt4 key购买 nike

我想在sinatra中写一个方法来设置布局,比如

def admin_layout
set :layout, 'admin/layout'
end

我知道我可以做 set :erb, layout: :'main/layout' 之类的事情,或者为每个 Action 指定布局,例如

get 'admin/login' do
erb :'admin/login', layout: :'admin/layout'
end

但我想知道是否有一种方法可以将其抽象为一个方法,这样我就不需要为每条路线设置布局。我正在制作一个带有 main 站点然后是 admin 站点的应用程序,但是管理部分非常轻量级,只需登录并能够编辑帖子,所以我不是试图变得太疯狂但我当前的文件结构是这样的:

db/
models/
public/
views/
admin/
main/
app.rb
config.ru

最佳答案

定义布局参数:

def admin_layout
{:layout, 'admin/layout'}
end

然后你可以使用这个方法作为参数,比如

get 'admin/login' do
## do ......
erb :'admin/login', admin_layout
end

或者如果你想判断它将使用哪种布局,改变 admin_layout 功能,如:

def admin_layout
if request.path.start_with?('/admin')
{:layout, 'admin/layout'}
else
{:layout, 'layout'}
end
end

关于ruby - Sinatra设置布局的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26080599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com