現在、Ruby Object Mapper を既存の SQL データベースで使用するプロジェクトに取り組んでいます。create コマンドを実行すると問題が発生します。返された結果はtable_name.id
デフォルトでソートされているようです。私が作業している既存のテーブルには 以外の名前の主キーがありid
、unknown column 'id'
例外が発生するため、これは問題です。
デフォルトの注文列を変更する方法はありますか?
現在、Ruby Object Mapper を既存の 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