我正在尝试使用模块等在网页上打印名称,但似乎无法弄清楚如何从模块文件中传递变量。
main.rb
require 'sinatra' # includes gem to process web pages
set :bind, '0.0.0.0' # sets default url address to localhost
require_relative('modules')
include Display_name
get "/" do
Display_name.disname()
erb :home
end
modules.rb
module Display_name
def disname()
@myname = "Bob"
end
end
views / home.erb
<h1> Hello <%= @myname %> </h1>
输出应该是你好鲍勃,但我刚得到你好。
包括模块时,其所有方法都可用于路由器实例。因此,只需在没有显式接收器(模块)的情况下调用disname
,即可将其分派到路由器本身,并且应该可以工作:
# ...
get "/" do
disname
erb :home
end