问题标签 [ruby-datamapper]
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.
ruby - 在 Ruby/Sinatra 中,Datamapper 的 .all 有效但 .get 无效?
我正在尝试从 Sinatra 中的路径获取数据,并使用 Datamapper 使用它来查找特定记录。Datamapper文档 似乎表明了这一点。
应该找到与符号关联的任何记录:test_path
这不起作用。test_get 为零。
同时,起作用的是
我的两个问题是:
- Datamapper 中的 .get() 调用我做错了什么?
- .all(:name => value) 方法是否比 .get() 慢,或者我使用哪个无关紧要?
这是一个简化的 Sinatra 脚本以演示该行为。
ruby - Sinatra 中的 DataMapper 错误 - NameError: 找不到 child_model
使用 Sinatra 和 DataMapper。这是我第一次尝试使用两个以上的模型类。不确定是什么导致了错误。谢谢。
错误:
型号:
ruby - 通过瘦(sinatra)访问时,Datamapper 会擦除 sqlite db
我正在使用 sinatra + datamapper 构建一个小型 Web 应用程序。该应用程序基于一个 sqlite 数据库,该数据库在 table1 中包含大量记录,而在 table2 中没有任何记录。
我的目录结构如下:
该数据库位于lib/wodb_el_v0.0.1.db
. 所有这些文件都包含类。
当我通过添加以下行来调用类在 rankmanager.rb 或 database.rb 中运行测试时:
当我这样做时,一切都运行良好。当我删除执行测试的行(在其中创建对象并运行方法)并require_relative
在我的 . 中时application.rb
,它会擦除数据库而不是使用它。数据库由db_scheme.rb
加载的处理database.rb
。
我db_scheme.rb
是要点。
知道为什么 datamapper 会这样吗?
附言。我通过手动运行database.rb
创建数据库的方法将数据加载到数据库。
最好的问候,并提前感谢您的时间!
ruby - 当关联存在或不存在时验证 DataMapper 中是否存在 2 个字段
我有一个模型,用户有 n, :accounts
当该实例没有任何关联帐户时,我想验证用户模型中是否存在 2 列(电子邮件和密码)。这个想法是注册 Facebook 的用户不需要使用电子邮件和密码。
现在我有这个,但我卡住了
ruby - Datamapper:报告为什么我不能销毁记录
我正在使用 datamapper 和 dm-constraints 设置我的数据库模型。我有两个具有多对多关系的模型,但是当我尝试破坏一个模型时,我得到的唯一消息是false
.
是否有可能让 datamapper 给我更多的反馈,到底是哪种关系导致了问题?
ruby - 在 Datamapper 中,得到“NoMethodError - 未定义的方法‘get!’ 对于 nil:NilClass:"
我有两个表,为数据映射器映射:
和
给定一个 LoginSession 对象,我想获取相应的用户:
当我在 user = session.user 处运行此代码时,我收到以下错误:
我无法弄清楚我做错了什么。我假设 LoginSession 对象找不到相应的用户方法或什么?请帮忙!
ruby - 复合主键仅用于访问记录,不保存数据映射器中的记录
我有一个应用程序可以跟踪玩家在健身计划中的进度。所以每个玩家都有多个相同的 :week_id 周
Week_id 结合belongs_to 关系是Week 记录的复合主键。
但是,当我尝试使用属于不同玩家的相同 week_id 创建两个星期时,我收到“column week_id is not unique”错误。
我觉得我走在正确的轨道上,因为当我想获取周记录时,它告诉我需要两个参数来获取它 - week_id 和 player_id。
我可能在这里遗漏了一些简单的东西。我希望你能给我看。
ruby - Ruby Datamapper 计数不起作用
当我这样做时,来自 irb:
我得到与该电子邮件关联的所有路由器的列表。但是当我这样做时:
我总是得到 0
我也看过这个问题:Ruby Datamapper .count always return 0但我仍然不知道为什么它不起作用。
-- 更新#1 --
这是 Router.all 命令的输出。如您所见,我得到了结果。
但是当我按照建议执行 Router.count 时,它仍然返回 0
ruby - 如何获取 ruby DataMapper::Collection 的所有不同属性值?
我正在使用ruby 1.9.3
ruby-datamapper 和postgresql
. 我有一个充满条目的表,每个条目都有三个属性id
:text
和created_at
。最后一个是Date
对象。
在我的应用程序中,我的SELECT
一些条目是这样的:collection = Entry.all(:text => /SomeRegexp/)
。我现在想知道返回的所有不同的值。我想到了以下两种方法:created_at
DataMapper::Collection
遍历
DataMapper::Collection
并收集所有日期。优点:
- 它应该工作
缺点:
- 海量数据速度很慢
- 它应该工作
向数据库询问每天的条目并收集 collection != nil 的日期
优点:
- 应该比上面的例子更快,尤其是在有大量数据的情况下
缺点:
- 许多数据库查询
- 应该比上面的例子更快,尤其是在有大量数据的情况下
注意:上面的代码是未经测试的伪代码,它应该只是让读者大致了解真实代码应该做什么,所以它不太可能工作。如果您需要更详细的示例,请随时发表评论,我会尝试更好地解释它!
下一条通知:如果您发现伪代码中有错误,请告诉我,这样我可以更快地开始!;)
所以最后我的问题是:我应该更喜欢哪种解决方案,或者我没有想到更好的解决方案?
mysql - Ruby App 中的 DataMapper 数据库池
我正在编写一个多线程 Ruby 应用程序,该应用程序通过dm-sweatshop生成数据并将其加载到旧版 MySQL 数据库中以用于负载测试。一切工作正常,有一个例外,我正在加载几百万条记录,但我似乎无法增加数据库连接池的大小来更快地完成工作。它似乎卡在 10 个连接上。我已经尝试增加应用程序本身的线程池大小,但是看着 MySQL,我似乎无法建立超过 10 个连接。
我最初只是使用 URL 进行 DataMapper 设置:
但我已移至此尝试设置数据库池大小:
如何增加池大小?我觉得我已经倾注了在 DataMapper 上可以找到的所有 RDoc 和文档,但我找不到如何去做。在这一点上,我会切换到 ActiveRecord 来完成这项工作,但它不支持复合主键,我需要这个旧数据库。
作为参考,我将“线程/池”gem 用于多线程,并且该应用程序在 Ruby 1.9.3 中运行。这是我在多个线程中使用 DataMapper 的方式: