Sequel で別名を付けたりテーブルを指定したりする

Sequel でカラムに別名を付けたり、どのテーブルのカラムなのかを指定する方法のメモ。

require 'sequel'
DB = Sequel.sqlite
Sequel::Model.plugin :schema

class Tbl < Sequel::Model
  unless table_exists?
    set_schema do
      primary_key :id
    end
    create_table
  end
end
                                                                                                                                
p Tbl.select(:id).filter(:id => 1).sql
# => "SELECT `id` FROM `tbls` WHERE (`id` = 1)"
p Tbl.select(:id___pk).filter(:tbls__id => 1).sql
# => "SELECT `id` AS 'pk' FROM `tbls` WHERE (`tbls`.`id` = 1)"
p Tbl.select(:tables__id___pk).sql
# => "SELECT `tables`.`id` AS 'pk' FROM `tbls`"

カラム名 + "___" + 別名 で別名を付ける。
テーブル名 + "__" + カラム名 で テーブルを指定。


アンダーバーを使ったカラム名は避けたい。