Ruby 在Sinatra中的Get方法中将Hash作为实例变量传递

Ruby 在Sinatra中的Get方法中将Hash作为实例变量传递,ruby,sinatra,Ruby,Sinatra,我正在为一个项目创建metro应用程序。我试图传递一个散列,其中包含用户可以选择作为键的选项,以及它将重定向到的url作为值。当我这样做时,sinatra报告: 没有将数组隐式转换为字符串 这很奇怪,因为到目前为止我的应用程序中还没有数组。我曾尝试在index.erb文件中注释嵌入的ruby,但没有帮助。申请如下: require "sinatra" require "sinatra/reloader" red = { "Woodley Park" => '/woodley_pa

我正在为一个项目创建metro应用程序。我试图传递一个散列,其中包含用户可以选择作为键的选项,以及它将重定向到的url作为值。当我这样做时,sinatra报告:

没有将数组隐式转换为字符串

这很奇怪,因为到目前为止我的应用程序中还没有数组。我曾尝试在index.erb文件中注释嵌入的ruby,但没有帮助。申请如下:

require "sinatra"
require "sinatra/reloader"

red = {
    "Woodley Park" => '/woodley_park',
    "Dupont Circle" => '/dupont_circle',
    "Farragut North" => '/farragut_north',
    "Metro Center" => '/metro_center',
    "Union Station" => '/union_station'
}

turquoise = {
    "Crystal City" => '/crystal_city',
    "Metro Center" => '/metro_center',
    "Shaw-Howard" => '/shaw_howard',
    "Beltwater" => '/beltwater'
}

orange = {
    "Farragut West" => '/farragut_west',
    "McPherson" => '/mcpherson',
    "Metro Center" => '/metro_center',
    "Federal Triangle" => '/federal_triangle',
    "Smithsonsian" => '/smithsonsian',
    "L'efant Plaza" => '/lefant_planza'
}

lines = {
    "Red" => "/red_line",
    "Turquoise" => "/turquoise_line",
    "Orange" => "/orange_line"
}

get '/' do
    @header = "Welcome to the D.C. Metro! Which line will you be starting at?"
    @options = lines
end
index.erb如下所示。同样,注释掉相关行并没有改变结果。提前谢谢

<h2><%= @header %></h2>

<% @options.each do |name, link| %>
<a href=<%= link %>><%= name %></a>
<% end %>


请包含整个堆栈跟踪。当您点击
/
时,您是说这种情况发生了?“内部服务器错误没有将数组隐式转换为字符串”是整个错误消息。当我点击/,它确实发生了。知道它可能是什么吗?嘿,原来我只是错过了get方法中的“erb:index”行。谢谢你的帮助!