Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在sinatra应用程序中使用自定义布局选项时出现名称错误_Ruby_Layout_Sinatra_Haml - Fatal编程技术网

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}。