Hi,

Reading through here 
<https://github.com/jeremyevans/sequel/blob/master/doc/model_hooks.rdoc> 
the documentation for Model hooks says in several places that hooks will 
only be called if they are called on a Model and not a Dataset object. It 
also states that the return from something like
MyModel.where(something: 'something else')
is going to be dataset.

I currently have a situation where I have a Dataset that I accidentally 
called #destroy on, but to my surprise it ran, and to my even greater 
surprise, it ran the destroy hooks. I went through the documentation here 
<https://sequel.jeremyevans.net/rdoc/classes/Sequel/Dataset.html> and it 
seemed to me a Dataset shouldn't even have #destroy, only #delete.

Here is my code:

class CompanyEventFile < Sequel::Model

  def after_destroy
    super
    # do something...
  end

end

class CompanyEvent < Sequel::Model

  def event_files
    CompantEventFile.where(event_id: id)
  end

end

CompanyEvent[1].event_files.destroy # this runs, and triggers the 
hook...why?
CompanyEvent[1].event_files.class # => Sequel::Postgres::Dataset
CompanyEvent[1].event_files.method(:destroy).source_location # => 
["/usr/local/lib/ruby/gems/2.4.0/gems/sequel-5.10.0/lib/sequel/model/base.rb", 
2054]

Thanks,

Eugene.




-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to