Ryan
Ryan

Reputation: 6652

How to get the SQL statement from a Sequel model

Is there a way to get JUST the SQL statement from a Sequel model?

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

Upvotes: 1

Views: 1234

Answers (1)

Mladen Jablanović
Mladen Jablanović

Reputation: 44080

Try

puts Asset.dataset.insert_sql

to actually insert (defaulted) values.

or

puts Asset.dataset.insert_sql(asset.values)

if you already have a prepared instance. Not sure if you had that in mind?

See Sequel::Dataset documentation and Sequel's mass assignment guide for more.

Upvotes: 2

Related Questions