Ruby 为什么Sequel只返回第一个匹配行?
我有一个名为sk.db的SQLite3数据库,其中有一个名为Sked的表,该表显示了带有日期列的体育比赛时间表。下面的代码只给出了第一个匹配行,而不是所有匹配行,其中应该有很多匹配行。我在Ruby 为什么Sequel只返回第一个匹配行?,ruby,sequel,Ruby,Sequel,我有一个名为sk.db的SQLite3数据库,其中有一个名为Sked的表,该表显示了带有日期列的体育比赛时间表。下面的代码只给出了第一个匹配行,而不是所有匹配行,其中应该有很多匹配行。我在where(…)中使用什么并不重要,它只会给我第一个匹配的行。如果我使用schedule.all,它将提供整个数据库,但如果我使用where,则只提供第一个匹配行 我哪里做错了 .rb 需要“日期” 需要“续集” 需要“sinatra” DB=续集。连接(“sqlite://sk.db") 类Skeddate.
where(…)
中使用什么并不重要,它只会给我第一个匹配的行。如果我使用schedule.all
,它将提供整个数据库,但如果我使用where
,则只提供第一个匹配行
我哪里做错了
.rb
需要“日期”
需要“续集”
需要“sinatra”
DB=续集。连接(“sqlite://sk.db")
类Skeddate.today)
雇员再培训局:游戏
结束
B.雇员再培训局
游戏
这可能很笨重,但我认为它可以满足您的需要。试一试
.rb
B.雇员再培训局
B.雇员再培训局
游戏
。如果(…)
查询实际上不检索记录,则返回可用于链接更多查询的数据集,例如:
my_posts = DB[:posts].where(:author => 'david').where(:topic => 'ruby') # no records are retrieved
如果要实际检索记录,请在末尾添加一个all
:
@todaymatches = schedule.where(:date => Date.today).all # records are retrieved
见:
.
.
.
get '/' do
@todaymatches = schedule.where(:date => Date.today)
def print_today_matches
@todaymatches.each { |x| puts x.inspect }
end
erb :games
end
<h1>Games</h1>
<p><%= print_today_matches %></p>
.
.
.
get '/' do
@todaymatches = schedule.where(:date => Date.today)
erb :games
end
<h1>Games</h1>
<p><%= @todaymatches.each { |x| p x } %></p>
my_posts = DB[:posts].where(:author => 'david').where(:topic => 'ruby') # no records are retrieved
@todaymatches = schedule.where(:date => Date.today).all # records are retrieved