不要在 Ruby 工作 "db.results_as_hash = true"
Don't work "db.results_as_hash = true" in Ruby
我连接到数据库并将 db.results_as_hash 更改为 true
db = SQLite3::Database.new 'barbershop.sqlite'
db.results_as_hash = true
但它不显示散列,它是简单的数组。
并且不工作
<% @results.each do |row| %>
<tr>
<td><%= row['Name'] %></td>
工作代码是
<% @results.each do |row| %>
<tr>
<td><%= row[1] %></td>
错误是"no implicit conversion of String into Integer"
怎么了?
Ruby 2.1.5p273,SQLite 版本 3.8.5,MacOS X Yosemite
来自repo you posted。你实际上并没有设置那个标志。您问题中的代码不是您 运行 的代码。没有 db
变量,而你在第一行 return
,所以第二行永远不会运行。
def get_db
return SQLite3::Database.new 'barbershop.sqlite'
db.results_as_hash = true
end
我猜这只能编译因为最后一行没有执行。试试这个:
def get_db
db = SQLite3::Database.new 'barbershop.sqlite'
db.results_as_hash = true
db
end
我连接到数据库并将 db.results_as_hash 更改为 true
db = SQLite3::Database.new 'barbershop.sqlite'
db.results_as_hash = true
但它不显示散列,它是简单的数组。 并且不工作
<% @results.each do |row| %>
<tr>
<td><%= row['Name'] %></td>
工作代码是
<% @results.each do |row| %>
<tr>
<td><%= row[1] %></td>
错误是"no implicit conversion of String into Integer"
怎么了?
Ruby 2.1.5p273,SQLite 版本 3.8.5,MacOS X Yosemite
来自repo you posted。你实际上并没有设置那个标志。您问题中的代码不是您 运行 的代码。没有 db
变量,而你在第一行 return
,所以第二行永远不会运行。
def get_db
return SQLite3::Database.new 'barbershop.sqlite'
db.results_as_hash = true
end
我猜这只能编译因为最后一行没有执行。试试这个:
def get_db
db = SQLite3::Database.new 'barbershop.sqlite'
db.results_as_hash = true
db
end