问题标签 [sqlite3-ruby]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
778 浏览

sinatra - 如何:DataMapper 中的单表继承?

我正在学习Sinatra (1.3.2) 并选择使用DataMapper (1.2.0) 作为 ORM 和内存中的SQLite (1.3.6) DB 来启动。和
两个模型共享大多数属性,因此我考虑在 DataMapper 中为 STI(单表继承)声明一个模型。阅读文档,多亏了Types::Discriminator,这似乎是小菜一碟。BooksDownloads

我将所有常见的抽象为DownloadableResource

按照示例,我认为它就像指定需要扩展的内容一样简单:

但这给了我以下错误:

DataObjects::SyntaxError:重复列名: id (code: 1, sql state: , query: ALTER TABLE " downloadable_resources " ADD COLUMN "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, uri: sqlite3::memory:?scheme=sqlite&user= &password=&host=&port=&query=&fragment=&adapter=sqlite3&path=:memory:)

在删除 id 时产生另一个(明显的)错误:

DataMapper::IncompleteModelError: DownloadableResource 必须有一个有效的键

我通过添加include DataMapper::Resource两个Bookand来解决这个问题Download,然后Book需要一个有效的密钥,现在看起来像这样:

也一样Download,但现在的问题是:

DataObjects::SyntaxError:重复列名:id(代码:1,sql state:,查询:ALTER TABLE " books " ADD COLUMN "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,uri: sqlite3::memory:?scheme=sqlite&user= &password=&host=&port=&query=&fragment=&adapter=sqlite3&path=:memory:)

开始觉得我在绕圈子,在 DataMapper 中实现单表继承的正确方法是什么?


PS:我看过

但我仍然有这个问题。

0 投票
2 回答
187 浏览

ruby-on-rails - 由于质量分配限制,Rails 脚手架参考不会保存

我是全新的 Rails 新手,如果这是一个愚蠢的问题,请原谅我——我根本无法拼凑足够的答案来判断我是否开始错误。开始。

  1. 我创建了与我的Company模型相关的所有内容rails g scaffold Company name:string description:text location_city:string location_state:string accounttype:references

  2. 我创建了与Accounttype模型相关的所有内容rails g scaffold Accounttype id:primary_key name:string price:decimal

  3. 因此,我的Company模型包含以下津贴:

    belongs_to :accounttype

    attr_accessible :description, :location_city, :location_state, :name

  4. 当我转到我为公司生成的脚手架编辑表单并在这些字段中输入数据时,它会引发错误:Can't mass-assign protected attributes: accounttype

  5. 如果我添加:accounttypeattr_accessible,它会抛出Accounttype(#70175254242100) expected, got String(#70175215042700)以下请求参数:

    {"utf8"=>"✓", "authenticity_token"=>"oXm3cqo0jemKYFB5OGqn5ixXLSB+bH19/1RhPUu0ZHU=", "company"=>{"name"=>"Acme Corp", "description"=>"a", "location_city"=>"san diego", "location_state"=>"california", "accounttype"=>"1"}, "commit"=>"Create Company"}

那么,是我用来:references链接这两个模型的问题吗?如果我使用它没问题,那么我应该怎么做才能让创建/更新工作?

0 投票
1 回答
63 浏览

ruby - 仅使用 rspec 时,sqlite3/data_mapper 始终将时间保存为 00:00:00

我有一个特殊的问题,涉及使用 data_mapper 和 sqlite3 和 rspec 节省时间

如果我运行下面的规范,我会收到此失败报告

如果我尝试在 irb 中手动保存文件,我会得到

总之,如果我运行接受字符串的 rspec 测试,将其分解并将其插入到新的 Time 对象中,则 Time 部分会错误地保存为 00:00:00

我还可以确认,在测试运行后,如果我检查数据库中已测试的记录,时间被错误地保存为 00:00:00(以防你怀疑 rspec 的 comaprison 或数据库检索被关 :) )

我很想弄清楚这件事——这真的让我很沮丧。特别是考虑到我并不真正关心日期(但我想解决这个问题,因为它现在激起了我的兴趣;))

此外,如果有更好的方法来实现节省数据库的时间,我愿意接受建议。谢谢!

life_dm.rb

睡眠.rb

sleep_spec.rb

0 投票
0 回答
476 浏览

gem - 宝石安装 sqlite3 -v '1.3.7'

当我尝试用这个安装 sqlite3 - >gem install sqlite3 -v '1.3.7'

出现此错误:

构建原生扩展。这可能需要一段时间... 错误:安装 sqlite3 时出错:错误:无法构建 gem 原生扩展。

NotImplementedError:未启用 C 扩展支持。将 -Xcext.enabled=true 传递给 JRuby > 或设置 JRUBY_OPTS 或修改 .jrubyrc 以启用。

(根) 在 /home/arthur/.rvm/rubies/jruby-1.7.2/lib/ruby/shared/mkmf.rb:8 需要在 org/jruby/RubyKernel.java:1027 (根) 在 /home/arthur /.rvm/rubies/jruby-1.7.2/lib/ruby/shared/rubygems/custom_require.rb:1(根)在 extconf.rb:3

Gem 文件将继续安装在 /home/arthur/.rvm/gems/jruby-1.7.2/gems/sqlite3-1.3.7 > 以供检查。结果记录到 /home/arthur/.rvm/gems/jruby-1.7.2/gems/sqlite3-1.3.7/ext/sqlite3/gem_make.out

0 投票
1 回答
1471 浏览

ruby - 使用 data_mapper (Ruby 1.8.7) 运行时如何解决 DataObjects::ConnectionError

当我运行这段代码

抛出此错误

DataObjects::ConnectionError: 无法打开数据库文件(代码:14,sql 状态:,查询:,uri:)。

它似乎在抱怨这DataMapper.finalize.auto_migrate!条线。

如果我注释掉 person 类,代码运行良好,尽管有点无用。

我遇到错误的操作系统是 Linux Mageia 2。我在运行 Ruby 1.9.3 的 WindowsXP 和 Windows7 上运行良好,但我怀疑问题是旧的 ruby​​ 版本不是操作系统的问题。

另外,告诉你包含该文件的文件夹的权限非常开放(-rwxrwxrwx)对我来说可能很重要(它可能不适合日常使用,但我迫切希望让 data_mapper 工作) .

以下是其他可能有趣的规格 我的本地宝石 sqlite3 (1.3.7, 1.3.3) sqlite3-ruby (1.3.3) data_mapper (1.2.0)

我知道这里有很多变量可以改变。我想我会先把它放在那里,看看它是否是我愚蠢地失踪的简单修复:)

0 投票
1 回答
1181 浏览

ruby-on-rails - 使用 rspec 进行测试会出现错误:“请安装 sqlite3 适配器”-railstutorial.org

嗨,我遇到了和这个人一样的问题:Ruby Guard questions - 'Please install the sqlite3 adapter' - railstutorial.org

执行“bundle exec rspec spec/requests/static_pages_spec.rb”给了我这个:

但我的 database.yml 看起来像这样:

我必须在这里改变什么?或者还有其他我看不到的问题?

PS:我安装了postgreSQL,所以我改变了database.yml中的开发通道。gemfile 看起来像这样:

0 投票
2 回答
203 浏览

ruby-on-rails - Ruby on Rails 和 cmd 中的 Sqlite3

我有一个带有名称建筑物的表,我想删除它,因为我忘记了一个列。在 cmd 中,我转到文件夹并键入“sqlite3”,然后键入“.tables”,没有任何显示。为什么?我能做什么?

0 投票
2 回答
697 浏览

ruby-on-rails - 如何将 ROR 安装到 ubuntu 12.04?sqlite3 出现错误

我是 ROR 的新手。因此,当我尝试安装 ROR 时。当我尝试启动 rails( rails s) 时,我收到这样的错误:

0 投票
1 回答
416 浏览

ruby-on-rails - Ruby on rails,加快数据库搜索的方法

我有具有以下字段的表产品:代码 - 字符串,id - 整数

我的表有超过 500 万行。

在模型中我使用代码:

查找结果需要 2 秒。
有什么办法可以减少搜索时间?

我正在使用 rails 3.2.11、ruby 1.9.3 和 sqlite3 作为数据库

UPD
更改型号代码

0 投票
3 回答
1580 浏览

jdbc - JRuby 和 SQLite3

我正在尝试使用以下宝石使 JRuby 和 SQLite3 工作:

有弹性的城堡 java (1.5.0146.1)

捆绑器 (1.3.2)

dbd-jdbc (0.1.6 java)

分贝 (0.4.5)

已弃用 (2.0.1)

jdbc-sqlite3 (3.7.2.1)

jruby-launcher (1.0.15 java)

jruby-openssl (0.8.2)

json (1.7.7 java)

机架 (1.5.2)

机架保护 (1.4.0)

耙子 (10.0.3)

rubygems 捆绑器 (1.1.1)

rvm (1.11.3.6)

西纳特拉 (1.3.5)

sqlite3 (1.3.7)

倾斜 (1.3.5)

这个代码:

但我有这个错误:

DBI::InterfaceError: Unable to load driver 'jdbc' (underlying error: wrong constant name jdbc) load_driver at /home/gl/.rvm/gems/jruby-1.7.3/gems/dbi-0.4.5/lib/dbi .rb:300 mon_synchronize 在 /home/gl/.rvm/rubies/jruby-1.7.3/lib/ruby/1.9/monitor.rb:211 load_driver 在 /home/gl/.rvm/gems/jruby-1.7.3 /gems/dbi-0.4.5/lib/dbi.rb:242 _get_full_driver 在 /home/gl/.rvm/gems/jruby-1.7.3/gems/dbi-0.4.5/lib/dbi.rb:160 连接在 /home/gl/.rvm/gems/jruby-1.7.3/gems/dbi-0.4.5/lib/dbi.rb:145(根) 在 srv.rb:6

你有想法吗?