【问题标题】:NameError in using custom layout option in sinatra app在 sinatra 应用程序中使用自定义布局选项时出现 NameError
【发布时间】:2023-04-02 01:25:02
【问题描述】:

要在我的应用中使用自定义布局文件,我正在使用以下代码,

set :views, File.dirname(__FILE__) + "/../views"
set :public_folder, File.dirname(__FILE__) + "/../public"
get '/' do
if !Db.empty? then
haml :home, {:layout => :nosetup-layout}
elsif request.ip == "127.0.0.1" then

haml :setup, {:layout => :nosetup-layout}

else
haml :nosetup, {:layout => :nosetup-layout}
end
end 

布局选项似乎有问题

我收到以下错误

undefined local variable or method `layout' for #<TabPlayer::Server:0x000000024509c8>

那么,我哪里做错了?

【问题讨论】:

    标签: ruby layout sinatra haml


    【解决方案1】:

    将您的布局重命名为 nosetup_layout(使用下划线)。

    然后只需调用:

    haml :nosetup, {:layout => :nosetup_layout}
    

    【讨论】:

    • 它成功了,谢谢,但这是什么愚蠢的约定!是因为` - `或者haml和layout应该有同名?
    • 我也可以有:"nosetup-layout"stackoverflow.com/questions/4190297/…
    • 这是因为你不能使用 - 以红宝石符号的名义。打开 ruby​​ 控制台并尝试评估 { :this => :wont-work }。
    猜你喜欢
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多