2015-12-02 71 views
0

我想使用active_record从数据库中读取entrys并保持不同的错误如下:名称错误,无法找到数据库或无法执行查询。如何使用活动记录从ruby sinatra中的数据库读取

所以我在这里的问题是我如何从数据库读取或执行SQL查询和例如将结果写入一个变量?

require 'rubygems' 
require 'sinatra' 
require 'active_record' 
require 'sqlite3' 


ActiveRecord::Base.establish_connection(
    :adapter => "sqlite3", 
    :database => "test.db" 
) 


class Article < ActiveRecord::Base 
end 

#ActiveRecord::Migration.create_table :users do |t| 
# t.string :name 
#end 


class App < Sinatra::Application 
end 

get '/' do 
    output = users.select(:all) 
    f = File.open('name','a'); f.write(output); f.close 
    #puts User.first 
+0

是数据库被称为test.db的并表通过outcommented迁移被叫用户 创建表方法工作得很好我只是不知道如何从表中读取数据在这一点 – soxidus

回答

0

要从users表中读取数据,你会简单地做:

class User < ActiveRecord::Base 
end 

get '/' do 
    @users = User.all 
    puts "Grabbed #{@users.size} user(s) from database" 
end 
+0

这工作正常,但如果我在我的scrpit中执行此返回用户:: ActiveRecord_Relation:0x000000002e2eb20但我想与一个真正的价值在最好的情况下,一个字符串如何从那里得到一个字符串?感谢您的帮助:) – soxidus

+0

只需将其更改为'@user = User.last',现在您可以执行'@ user.name'或您在用户上的任何字段。 – Anthony

相关问题