问题标签 [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-Datamapper 中指定表名
我想使用 Datamapper 动态创建和查询表。
虽然 Datamapper 允许您使用旧表和模式,并以这种方式设置使用的表名,但这仅在初始化期间,而不是在应用程序内。
有没有一种简单的方法可以告诉 Datamapper 在应用程序中迁移/升级具有分配表名的模型,然后告诉它查询该表?
ruby - 如何使用 DataMapper 重新加载实例
经过多年的 AR 经验,我正在使用 DataMapper 作为 ORM 框架。出于这个原因,我有时会尝试找到一个特定的 DM 函数来反映 AR 的某些行为。有时我很幸运,有时我不是。使用#reload 指令,我有点不知所措。该方法存在,但不知何故并没有达到我的预期。基本上,DM 以某种方式将实例中的每个属性标记为“未加载”,而不是 AR 行为中实例属性将通过数据库进行更新。
有人可以告诉我这是否可以使用 DM 来实现?
ruby - Datamapper 一对一关联(有 1 个)问题
我正在使用与 postgres 关联的 datamapper
我有 2 个这样定义的类:
当我尝试这样做并访问 dep 模型时,出现错误:undefined method 'rec_id' for #
就我的研究而言,创建的模型没有一对一的关系。相反,它具有一对多的关系。我认为这就是问题所在。有没有办法在datamapper中创建一对一的关系?
此外,它不允许我使用 :required => false 和 'has 1'
使用belongs_to 双方不会创建适当的关系。相反,它会创建关系,这是不可取的。谁能帮我解决这个问题?
datamapper - DataMapper:对自定义类型设置默认验证
我刚刚编写了一个自定义 DM 类型来帮助我解决这个问题。继承自 String 和所有爵士乐。刚才我想要一个默认验证。所以,我作为用户不需要定义的东西,它只是隐含地存在。例如,对于布尔类型的属性,如果您传递的不是真假,它会使它的对象无效。我想要那样的东西。您知道这是否可行,以及在架构中最好的位置插入它吗?
ruby - Ruby:如何在查询结果中获取数组而不是 DataMapper::Collection
这是我的代码:
today_ids_from_db = Rating.all(:fields => 'my_id', :ts_d => Time.now)
today_ids_from_db.class == DataMapper::Collection
但我需要获得带有 my_id 值的简单 ruby 数组
如何做到这一点?
ruby-datamapper - Datamapper - 在 :destroy 回调被调用两次之前?
出于某种原因,当我对我的 DataMapper 模型之一的实例调用 destroy 时,“before :destroy”回调被执行了两次,导致错误。有问题的模型与另一个模型有一个 belongs_to 关联,该模型在父端有一个 :destroy 约束。谁能明白为什么会发生这种情况?
ruby - 添加到datamapper json的末尾
.to_json
我想知道如何在 DataMappers方法生成的 JSON 末尾添加另一个键值对。当我尝试调用to_json(:methods => [:total_pages])
时,它会忽略所有方法。
我希望它产生这样的东西:
有没有办法只做内联方法或其他方法?
谢谢!
ruby - Data-Mapper 在乘客和红宝石 1.8 下
使用在乘客和 ruby 1.8 上运行的数据映射器在字段上声明必需时,我的 sinatra 应用程序显示错误
错误:Person:Class 的未定义局部变量或方法“必需”
这是 datamapper 和 ruby 1.8 的问题,还是乘客的问题,还是我标记所需属性的方式?
ruby - Ruby Datamapper 如何在同一个应用程序中使用不同的数据存储
我正在将 sinatra 与 datamapper 一起使用,并且有多个数据库,我想在同一个应用程序中按照我的逻辑连接并使用它们。
我在一个文件中定义了我的数据映射器设置,比如 app.rb
我的第一个模型文件(xyz_db.rb),对应于 xyz 表,该表位于默认数据存储中:default
我的第二个模型文件(userlogrecord_db.rb),对应于 userlogrecords 表,该表位于其他数据存储中:logrecdm
我的第三个模型文件(abc_db.rb),对应于 abc,该表位于其他数据存储中:mydb
当我运行我的 app.rb 时,默认情况下第一个模型 (xyz_db.rb) 使用默认数据存储。但是对于第二个和第三个模型,我希望它们应该分别在 :logrecdm 和 :mydb 数据存储中生成。为了实现这一目标,我应该在第二个和第三个模型中做出哪些改变?在第三个数据存储(:mydb)中,我使用的是 dm-reflective。我查看了http://datamapper.org/docs/misc.html但这并没有真正帮助。任何帮助将不胜感激。
ruby - 无法销毁父对象
我有一个大而复杂的用户模型,看起来像这样:
我的问题是 Datamapper 不让我销毁它。我认为这是 Datamapper 不想用未销毁的子对象销毁对象的结果,所以我放入了一个destroy_deep 方法,该方法在links_to_followers、links_to_followed、底层评论和个人资料图像上调用destroy(这些都被正确销毁) .
但是,即使我在那之后调用 user.destroy,用户也不会被销毁。没有任何类型的错误消息。我是否缺少某种级联删除命令?