我目前正在研究一个项目,我想使用Ruby Object MaPerver与现有的SQL数据库。我在执行create命令时遇到问题,默认情况下,返回的结果似乎按table_name.id排序这是一个问题,因为我正在使用的现有表有一个主键,而不是id,它导致了unknown column 'id'异常。
我只是想知道是否有任何可能的方法来更改默认订单列?

最佳答案

刚从Github得到答案:
这是一个与rom sql相关的问题(https://github.com/rom-rb/rom-sql/blob/master/lib/rom/sql/relation.rb#L39)。
解决方案是在命令的关系中显式地声明数据集试试这样的:

class MyRelation < ROM::Relation[:sql]
  dataset { order(:my_column) }
end

https://github.com/rom-rb/rom/issues/339#issuecomment-193904733
更新:
或者,您也可以使用:macros在容器定义中设置:
rom_container = ROM.container(:sql, 'mysql2://root@localhost/db_name') do |rom|
  rom.use :macros

  rom.relation(:users) do |r|
    r.primary_key :my_column
    r.dataset { order(:my_column) }
  end
end

关于ruby - Ruby Object Mapper-如何在“创建”命令中更改默认顺序字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35874049/

10-09 10:20