Ruby 在sinatra应用程序中使用自定义布局选项时出现名称错误
要在我的应用程序中使用自定义布局文件,我使用以下代码Ruby 在sinatra应用程序中使用自定义布局选项时出现名称错误,ruby,layout,sinatra,haml,Ruby,Layout,Sinatra,Haml,要在我的应用程序中使用自定义布局文件,我使用以下代码 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
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>
未定义的局部变量或方法“layout”#
那么,我哪里出错了?将布局重命名为nosetup_布局(使用下划线) 然后打电话:
haml :nosetup, {:layout => :nosetup_layout}
将布局重命名为nosetup_布局(使用下划线) 然后打电话:
haml :nosetup, {:layout => :nosetup_layout}
它成功了,谢谢,但是这个愚蠢的惯例是什么!!这是因为“-”或者haml和layout应该有相同的名称?我也可以有
:“nosetup layout”
看到这是因为你不能使用-ruby符号的名称。打开ruby控制台并尝试评估{:this=>:wonnt work}。它工作了,谢谢,但是这个愚蠢的约定是什么!!这是因为“-”或者haml和layout应该有相同的名称?我也可以有:“nosetup layout”
看到这是因为你不能使用-ruby符号的名称。打开ruby控制台并尝试评估{:this=>:wonnt work}。