问题标签 [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.

0 投票
1 回答
325 浏览

ruby - 在 Ruby/Sinatra 中,Datamapper 的 .all 有效但 .get 无效?

我正在尝试从 Sinatra 中的路径获取数据,并使用 Datamapper 使用它来查找特定记录。Datamapper文档 似乎表明了这一点。

应该找到与符号关联的任何记录:test_path

这不起作用。test_get 为零。

同时,起作用的是

我的两个问题是:

  1. Datamapper 中的 .get() 调用我做错了什么?
  2. .all(:name => value) 方法是否比 .get() 慢,或者我使用哪个无关紧要?

这是一个简化的 Sinatra 脚本以演示该行为。

0 投票
1 回答
566 浏览

ruby - Sinatra 中的 DataMapper 错误 - NameError: 找不到 child_model

使用 Sinatra 和 DataMapper。这是我第一次尝试使用两个以上的模型类。不确定是什么导致了错误。谢谢。

错误:

型号:

0 投票
1 回答
146 浏览

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创建数据库的方法将数据加载到数据库。

最好的问候,并提前感谢您的时间!

0 投票
1 回答
115 浏览

ruby - 当关联存在或不存在时验证 DataMapper 中是否存在 2 个字段

我有一个模型,用户有 n, :accounts

当该实例没有任何关联帐户时,我想验证用户模型中是否存在 2 列(电子邮件和密码)。这个想法是注册 Facebook 的用户不需要使用电子邮件和密码。

现在我有这个,但我卡住了

0 投票
3 回答
1389 浏览

ruby - Datamapper:报告为什么我不能销毁记录

我正在使用 datamapper 和 dm-constraints 设置我的数据库模型。我有两个具有多对多关系的模型,但是当我尝试破坏一个模型时,我得到的唯一消息是false.

是否有可能让 datamapper 给我更多的反馈,到底是哪种关系导致了问题?

0 投票
0 回答
482 浏览

ruby - 在 Datamapper 中,得到“NoMethodError - 未定义的方法‘get!’ 对于 nil:NilClass:"

我有两个表,为数据映射器映射:

给定一个 LoginSession 对象,我想获取相应的用户:

当我在 user = session.user 处运行此代码时,我收到以下错误:

我无法弄清楚我做错了什么。我假设 LoginSession 对象找不到相应的用户方法或什么?请帮忙!

0 投票
2 回答
262 浏览

ruby - 复合主键仅用于访问记录,不保存数据映射器中的记录

我有一个应用程序可以跟踪玩家在健身计划中的进度。所以每个玩家都有多个相同的 :week_id 周

Week_id 结合belongs_to 关系是Week 记录的复合主键。

但是,当我尝试使用属于不同玩家的相同 week_id 创建两个星期时,我收到“column week_id is not unique”错误。

我觉得我走在正确的轨道上,因为当我想获取周记录时,它告诉我需要两个参数来获取它 - week_id 和 player_id。

我可能在这里遗漏了一些简单的东西。我希望你能给我看。

0 投票
2 回答
734 浏览

ruby - Ruby Datamapper 计数不起作用

当我这样做时,来自 irb:

我得到与该电子邮件关联的所有路由器的列表。但是当我这样做时:

我总是得到 0

我也看过这个问题:Ruby Datamapper .count always return 0但我仍然不知道为什么它不起作用。

-- 更新#1 --

这是 Router.all 命令的输出。如您所见,我得到了结果。

但是当我按照建议执行 Router.count 时,它仍然返回 0

0 投票
2 回答
169 浏览

ruby - 如何获取 ruby​​ DataMapper::Collection 的所有不同属性值?

我正在使用ruby 1.9.3ruby​​-datamapper 和postgresql. 我有一个充满条目的表,每个条目都有三个属性idtextcreated_at。最后一个是Date对象。

在我的应用程序中,我的SELECT一些条目是这样的:collection = Entry.all(:text => /SomeRegexp/)。我现在想知道返回的所有不同的值。我想到了以下两种方法:created_atDataMapper::Collection

  1. 遍历DataMapper::Collection并收集所有日期。

    优点:

    • 它应该工作

    缺点:

    • 海量数据速度很慢
  2. 向数据库询问每天的条目并收集 collection != nil 的日期

    优点:

    • 应该比上面的例子更快,尤其是在有大量数据的情况下

    缺点:

    • 许多数据库查询

注意:上面的代码是未经测试的伪代码,它应该只是让读者大致了解真实代码应该做什么,所以它不太可能工作。如果您需要更详细的示例,请随时发表评论,我会尝试更好地解释它!

下一条通知:如果您发现伪代码中有错误,请告诉我,这样我可以更快地开始!;)

所以最后我的问题是:我应该更喜欢哪种解决方案,或者我没有想到更好的解决方案?

0 投票
1 回答
512 浏览

mysql - Ruby App 中的 DataMapper 数据库池

我正在编写一个多线程 Ruby 应用程序,该应用程序通过dm-sweatshop生成数据并将其加载到旧版 MySQL 数据库中以用于负载测试。一切工作正常,有一个例外,我正在加载几百万条记录,但我似乎无法增加数据库连接池的大小来更快地完成工作。它似乎卡在 10 个连接上。我已经尝试增加应用程序本身的线程池大小,但是看着 MySQL,我似乎无法建立超过 10 个连接。

我最初只是使用 URL 进行 DataMapper 设置:

但我已移至此尝试设置数据库池大小:

如何增加池大小?我觉得我已经倾注了在 DataMapper 上可以找到的所有 RDoc 和文档,但我找不到如何去做。在这一点上,我会切换到 ActiveRecord 来完成这项工作,但它不支持复合主键,我需要这个旧数据库。

作为参考,我将“线程/池”gem 用于多线程,并且该应用程序在 Ruby 1.9.3 中运行。这是我在多个线程中使用 DataMapper 的方式: