Как получить оператор SQL из модели Sequel

Есть ли способ получить ТОЛЬКО оператор SQL из Sequel модель?

class Asset < Sequel::Model(:Asset)
  set_primary_key :id

  many_to_one :site,    key: :siteid
  many_to_one :company, key: :companyid

  def validate
    super
    errors.add(:partnumber, "can't be empty") if partnumber.nil? || partnumber.empty?
    errors.add(:serialnumber, "can't be empty") if serialnumber.nil? || serialnumber.empty?
    errors.add(:description, "can't be empty") if description.nil? || description.empty?
  end
end

asset = Asset.new
# Add values to asset

puts asset.insert_sql

person Ryan    schedule 19.09.2012    source источник
comment
Используйте консоль Sequel, чтобы открыть соединение с вашей базой данных, и возитесь с результирующим сеансом IRB, чтобы попытаться добавить .sql к вариантам в шпаргалке Sequel. Удивительно видеть, как вы можете создавать свои запросы, и видеть, насколько хорошо Sequel создает SQL.   -  person the Tin Man    schedule 19.09.2012


Ответы (1)


Пытаться

puts Asset.dataset.insert_sql

для фактической вставки значений (по умолчанию).

or

puts Asset.dataset.insert_sql(asset.values)

если у вас уже есть подготовленный экземпляр. Не уверен, что вы это имели в виду?

См. документацию Sequel::Dataset и руководство по массовому назначению Sequel, чтобы узнать больше.

person Mladen Jablanović    schedule 19.09.2012
comment
Вторая строка Asset.dataset.insert_sql(asset) — это фрагмент, который соответствует моим требованиям. Спасибо. - person Ryan; 20.09.2012