Hello Jeremy, I tried following both examples (e.g. *dataset_module do* and * self.search_by_last_name*), but get this error in both cases:
undefined method `with_last_initial' for MyApp::User:Module What's could be the reason? On Tuesday, May 15, 2012 11:41:33 AM UTC-7, Jeremy Evans wrote: > > On Tuesday, May 15, 2012 9:23:07 AM UTC-7, Sean Redmond wrote: >> >> I'm new to Sequel and newish to Ruby (but coming with a lot of experience >> in, say, Python) and I'm looking for Sequel tutorials or examples that >> don't skip a lot of steps. Most of what I'm finding kind of jumps over >> everything to the punch line and when I try to recreate the example I can't >> get it to work. I'm trying to figure out things like: If I have a table >> with people's names how to I extend Sequel::Model to add a method that will >> return all the people whose last names begin with a specific letter. > > > If you haven't read the documentation on > http://sequel.rubyforge.org/documentation.html, I would start there > first. Unfortunately, I don't think there is much in the way of tutorial > documentation for Sequel. Most of it was written by me, and I'm not very > good at looking at Sequel from the eyes of a new user. I certainly would > be willing to help anyone who was interested in writing such documentation, > and including such documentation with Sequel. > > To answer your specific question: > > class Person < Sequel::Model > dataset_module do > def with_last_initial(initial) > where(:last_name.ilike("#{initial}%")).all > end > end > end > > # usage > Person.with_last_initial('E') > > Different things in play here: > > 1) Creating a model subclass for the table with the people's names. > 2) Using Model.dataset_module which creates an anonymous module that the > model's dataset is extended with > 3) Using Dataset#where and Symbol#ilike to create a filter that limits the > rows to the ones with the given last initial. > 4) Using Dataset#all to return all of those rows. > > Feel free to ask questions here or join the #sequel channeel on Freenode > IRC. > > Thanks, > Jeremy > -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/sequel-talk/-/b3tuyRH1csUJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sequel-talk?hl=en.
