问题标签 [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 投票
3 回答
1619 浏览

ruby - DataMapper - 为什么是“has”和“belongs_to”?

我刚刚开始使用 DataMapper,我试图弄清楚为什么你需要指定 ahas和 a belongs_to

例如,查看 DataMapper 网站上的示例。这不是多余的吗?如果发表has n评论,那么评论不会自动belongs_to发布吗?为什么我必须指定这个?

0 投票
3 回答
3339 浏览

ruby - 如何在 Ruby DataMapper 中使用事务?

我有一个执行存储在 YAML 文件中的 SQL 语句(更新、插入和删除)的类。我希望所有陈述都成为一项交易的一部分。如果任何 SQL 语句失败,那么它们将被回滚。如果所有语句都成功,那么它们将被提交。我正在连接到 MySQL 数据库。这是我的代码:

我想让我的所有 @adapter.execute 调用成为一个事务的一部分。我查看了 dm-transactions gem 中的代码,但我不知道如何在这种情况下使用它。

0 投票
2 回答
379 浏览

ruby - DataMapper 关联/验证导致保存失败

所以我在使用 DataMapper 和对象关联时遇到了一些麻烦。(底部提供的代码)。我在保存到未设置某些 id 的情况下遇到错误,我认为这与我如何设置关联/不完全理解关联在 DataMapper 下的工作方式有关。

我正在运行的代码是:

我收到的错误是:

模型类在这里: http: //www.pastie.org/private/xer5grfaulmnxalne6g5va(链接为简洁)

编辑好的,崩溃来自第 26 行的创建:

那么它是否与从 的继承有关BandwidthEntry/BandwidthDeviceEntry,因为该类甚至与设备没有关联。

不妨也发布完整的堆栈跟踪: http: //www.pastie.org/private/ospnkeeylul9mhf4fgxhdq

编辑好的,这里基本上是其余的代码http://www.pastie.org/private/pwmihpa6vu3h7lypx64ag

我永远不知道要发布多少,对不起!

0 投票
1 回答
654 浏览

ruby - DataMapper 按关联计数过滤记录

使用以下模型,我正在寻找一种有效且直接的方法来返回所有具有 0 个父任务的任务(本质上是顶级任务)。我最终也想返回 0 个子任务之类的东西,所以一个通用的解决方案会很棒。这是否可以使用现有的 DataMapper 功能,或者我需要定义一种方法来手动过滤结果?

我希望能够在 Task 类上定义一个共享方法,例如:

谢谢!

0 投票
2 回答
2323 浏览

ruby - 适配器不与数据映射器一起使用

我有以下代码:

但是,当我尝试运行它时,我得到:

LoadError:没有要加载的文件——dm-postgres-adapter

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:53:in `gem_original_require'

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:53:in `require'

/Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/adapters.rb:163:in `load_adapter'

/Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/adapters.rb:133:in `adapter_class'

/Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/adapters.rb:13:in `new'

/Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core.rb:219:in `setup'

这些是我安装的宝石:

*当地宝石*

摘要 (1.0.0)

动作邮件程序(3.0.9、3.0.5、2.3.5、1.3.6)

动作包(3.0.9、3.0.5、2.3.5、1.13.6)

actionwebservice (1.2.6)

活动模型(3.0.9、3.0.5)

活动记录(3.0.9、3.0.5、2.3.5、1.15.6)

活动资​​源(3.0.9、3.0.5、2.3.5)

主动支持(3.0.9、3.0.5、2.3.5、1.4.4)

act_as_ferret (0.4.3)

可寻址(2.2.6、2.2.5)

雷尔 (2.0.10, 2.0.9)

自动测试 (4.4.6)

自动测试 fsevent (0.2.4)

自动测试咆哮(0.2.9)

autotest-rails-pure (4.1.2)

bcrypt-ruby (2.1.4)

建设者(2.1.2)

捆绑器 (1.0.10)

卡皮斯特拉诺 (2.5.2)

cgi_multipart_eof_fix (2.5.0)

配置 (1.2.0)

守护进程 (1.0.10)

数据对象(0.10.6)

数据映射器(1.1.0)

diff-lcs (1.1.2)

dm-聚合 (1.1.0)

dm-约束 (1.1.0)

dm 核心 (1.2.0.rc2, 1.1.0)

dm-do-适配器 (1.2.0.rc2, 1.1.0)

dm 迁移 (1.1.0)

dm-postgres-适配器 (1.2.0.rc2, 1.1.0)

dm 序列化程序 (1.1.0)

dm-sqlite-适配器 (1.2.0.rc2, 1.1.0)

dm 时间戳 (1.1.0)

dm 交易 (1.1.0)

dm 类型 (1.1.0)

dm 验证 (1.1.0)

dnssd (0.6.0)

do_postgres (0.10.6)

do_sqlite3 (0.10.6)

厄鲁比斯 (2.6.6)

事件机(0.12.10)

ezcrypto (0.7.2)

法拉第 (0.6.1)

faraday_middleware (0.6.3)

更快的csv(1.5.4)

快速线程(1.0.1)

fcgi (0.8.7)

雪貂 (0.11.6)

gem_plugin (0.2.3)

哈希(1.0.0)

heroku (1.18.1)

高线 (1.5.0)

hpricot (0.8.4, 0.6.164)

i18n (0.5.0)

json (1.5.1, 1.4.6)

发射 (0.3.7)

少(1.2.21)

libxml-ruby (1.1.2)

液体 (2.2.2)

邮件(2.2.19、2.2.15)

哑剧类型 (1.16)

摩卡(0.9.12)

杂种 (1.1.5)

multi_json (0.0.5)

multi_xml (0.2.2)

多部分帖子(1.1.0)

喃喃自语(0.5.3)

针 (1.3.0)

网络SCP(1.0.1)

网络 sftp (2.0.1, 1.1.1)

网络 SSH (2.0.4, 1.1.4)

网络 ssh 网关 (1.0.0)

nokogiri (1.4.4)

oauth (0.4.5, 0.4.4)

多语言 (0.3.1)

机架(1.2.1、1.0.1)

机架式(0.6.14、0.6.13)

机架测试(0.5.7)

导轨(3.0.9、3.0.5、2.3.5、1.2.6)

铁轨 (3.0.9, 3.0.5)

耙子 (0.8.7, 0.8.3)

咆哮(0.5.7)

皮疹 (0.3.0)

rdoc (3.9.2)

红布 (4.1.1)

休息客户端(1.6.1)

劳斯 (0.0.3)

rspec (2.6.0, 2.5.0)

rspec 核心 (2.6.4, 2.5.1)

rspec-expectations (2.6.0, 2.5.0)

rspec 模拟 (2.6.0, 2.5.0)

rspec-rails (2.6.1, 2.5.0)

红宝石-openid (2.1.2)

红宝石雅迪斯 (0.3.4)

rubygems 更新 (1.6.0)

红宝石节点(0.1.5)

续集 (3.20.0)

霰弹枪 (0.9)

simple_oauth (0.1.4)

西纳特拉 (1.2.3, 1.0)

叉叉 (0.9.0.rc4)

sqlite3 (1.3.3)

sqlite3-ruby (1.2.4)

字符串 (1.2.2)

系统名称 (0.8.5)

水龙头 (0.3.23)

终端 (0.9.4)

雷神 (0.14.6)

倾斜 (1.2.2)

树顶 (1.4.9, 1.4.5)

推文流 (1.0.4)

推特 (1.4.0)

推特流(0.1.10)

twitter4r (0.7.0)

twitter_oauth (0.4.3)

tzinfo (0.3.24)

uuidtools (2.1.2)

视觉媒体咆哮(1.0.3)

韦拉特 (0.7.1)

xmpp4r (0.4)

禅测 (4.5.0)

0 投票
2 回答
438 浏览

ruby - 布尔值与枚举与标志

我正在开发一个允许用户登录的网站。所有用户有1个账号,一个账号可以有多个订单。用户可以是客户、工作人员或经理。客户既不是工人也不是经理。经理也是工人。我想根据登录用户的类型展示页面/导航选项的其他部分。

目前我正在使用一组布尔值将用户标记为特定类型,测试该值,并运行一些 if/elsif 块以生成用户看到的页面。

然后我使用 before 过滤器来测试用户类型并将结果设置为变量。

然后在我看来,我有@ura 可以玩。在我看来,这已经会给我的经理带来麻烦,因为@ura 必须既是工人又是经理。我可以在我的观点中使用一些或,但我认为更好的解决方案是将用户类型设置为枚举或标志。但我真的不明白如何在我的过程中使用它。

我想知道每种方法的优点/缺点是什么,以及如何在@ura 中获得适当值的基本示例。

0 投票
0 回答
424 浏览

mysql - Ruby mysql mysql2 AND datamapper如何重新连接

我有一些东西在不断地做定期查询。我已经使用了 DataMapper(尽管我正在通过它执行原始 SQL)和 mysql2。

使用其中任何一个,它们偶尔会停止工作。我相信这是因为服务器打嗝什么的。

尽管如此,然后一切都停止了。每个线程上的执行只在查询行停止,这就是结束。

有没有办法告诉他们重新连接?或者,做不到这一点,我可以自己做吗?我一直在尝试使用timeout,但超时似乎也有点冻结(它进入块并且永远不会离开,既不是通过引发错误也不是通过自然完成)。

我只是希望查询(如果它们失败)在下次继续传递,再试一次,如有必要,重新连接到服务器。我怎样才能做到这一点?

0 投票
1 回答
533 浏览

ruby - 如何在 sinatra 视图中列出可能的枚举符号?

假设我有一个这样的模型:

假设有一条路线指向 erb 模板以添加更多动物,@animal = session[:animal]我将如何创建动物类型列表?

(显然那段代码并不能满足我的要求,但我希望它能让它更清楚一点。)

0 投票
1 回答
268 浏览

ruby - 如何让 Sinatra 返回与今天日期匹配的记录?

我的 Sinatra 应用程序是一个笔记集合。每个笔记都被分配了一个(未来)应该发布的日期:

我想根据发布日期创建一条仅显示今天的注释的路线:

可以使用 note.publish_date.to_s = Date.today.to_s 找到我想要的注释,但我似乎无法弄清楚使其工作的语法。在此先感谢您设置直!

0 投票
1 回答
278 浏览

ruby-on-rails - 由于 ArgumentError,使用 DataMapper 的会话不起作用

我在 session_store.rb 中有以下内容。我正在运行 Ruby 1.8.7 和 rails 3.1.0.rc4

向服务器发出请求时,我得到以下输出: