【问题标题】:how do I read from a Database in ruby sinatra using active record如何使用活动记录从 ruby​​ sinatra 中的数据库中读取
【发布时间】:2015-12-02 20:57:50
【问题描述】:

我想使用 active_record 从数据库中读取条目并不断收到不同的错误,例如:名称错误,找不到数据库或无法执行查询。

所以我的问题是如何从数据库中读取数据或执行 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

【问题讨论】:

  • 是的,数据库名为 test.db,表名为 users,通过注释掉的迁移方法创建表工作得很好,我只是现在不知道如何从表中读取数据

标签: ruby sqlite activerecord sinatra sinatra-activerecord


【解决方案1】:

要从users 表中读取数据,您只需执行以下操作:

class User < ActiveRecord::Base
end

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

【讨论】:

  • 这很好用,但是如果我在我的脚本中执行它,它会返回 users::ActiveRecord_Relation:0x000000002e2eb20 但我想使用一个真实的值,比如最好的情况是一个字符串我如何从那里 ?感谢您到目前为止的帮助:)
  • 只需将其更改为@user = User.last,现在您可以使用@user.name 或您在用户上拥有的任何字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多