What I'm trying to do is parse out the title and then save it to the DB for quick display on the webpage.
I could do a before_save, hadn't thought of that, but would I have the same issues? I'm basically doing a Page.new(...), a few lines of validation, and then Page.save() so before_save would be ok I guess. Is there typically a standard way of doing things? On Fri, Dec 21, 2012 at 4:36 PM, Norbert Melzer <[email protected]> wrote: > I would use a before_save or what it is called if I were you. > Am 21.12.2012 19:40 schrieb "Walter Lee Davis" <[email protected]>: > > >> On Dec 21, 2012, at 1:12 PM, Dan Brooking wrote: >> >> > So is the way I'm doing it right? Or just a way I happened to hack it >> to work? >> > >> > The way my code was looking was basically: >> > >> > Page.new(:url => 'http://www.yahoo.com') >> > >> > class Page < ActiveRecord::Base >> > attr_accessible :url, :title >> > >> > after_initialize :parse_page_params >> > >> > def parse_page_params >> > @title = "test" >> > end >> > >> >> Have a look at the documentation for after_initialize -- it runs once, >> after Rails itself is fully initialized. Is that the point at which you >> mean to instantiate the instance variable @title? Which instance of its >> class would it attach to? Can you please describe what you intend to do >> with @title -- where it's going to be used? >> >> Walter >> >> > and this wasn't working... I understand what you said above about the >> instance variables, methods, initializing, etc.. but still a little unclear >> about why that code doesn't work as I'm setting it. Is it because Rails >> uses the method name of title which hasn't been initailized in my >> assignment above? >> > >> > >> > >> > >> > On Fri, Dec 21, 2012 at 12:43 PM, Walter Lee Davis <[email protected]> >> wrote: >> > >> > On Dec 21, 2012, at 12:37 PM, Dan Brooking wrote: >> > >> > > I posted a previous message about overriding initialize... because I >> was having issues setting some of the parameters. I have a Page model that >> has: >> > > >> > > attr_accessible :url, :title, :doc, :domain >> > > >> > > and it's called via: >> > > >> > > Page.new(:url => 'http://www.yahoo.com') >> > > >> > > Since I'm only passing in the url to new, I needed to set the other >> parameters. I was trying to do this via an after_initialize callback which >> wasn't working so tried overriding initialize... still not working. >> > > >> > > What I found out was that in my after_initialize, I was referring to >> title as @title which is why it was not working. I switched it to >> self.title and it works fine. >> > > >> > > My question is - why? >> > >> > @title is an instance variable. Until you set it, it doesn't exist. >> Having a method on the model called title (or an accessor, or some other >> Rails magick) does not instantiate that method's return until and unless >> you ask for it by calling the method. Calling self.method_name just makes >> it clear which same-named method you really mean. Self is implied much of >> the time, but when you have all the many method_missing options available, >> it might not be the first one such that gets called. >> > >> > Walter >> > >> > > >> > > -- >> > > You received this message because you are subscribed to the Google >> Groups "Ruby on Rails: Talk" group. >> > > To post to this group, send email to >> [email protected]. >> > > To unsubscribe from this group, send email to >> [email protected]. >> > > To view this discussion on the web visit >> https://groups.google.com/d/msg/rubyonrails-talk/-/-ncNakybQ-cJ. >> > > For more options, visit https://groups.google.com/groups/opt_out. >> > > >> > > >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Ruby on Rails: Talk" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> [email protected]. >> > For more options, visit https://groups.google.com/groups/opt_out. >> > >> > >> > >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Ruby on Rails: Talk" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> [email protected]. >> > For more options, visit https://groups.google.com/groups/opt_out. >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

