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" <wa...@wdstudio.com>:
> > 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 <wa...@wdstudio.com> > 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 rubyonrails-talk@googlegroups.com > . > > > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > > > 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 rubyonrails-talk@googlegroups.com. > > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > > 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 rubyonrails-talk@googlegroups.com. > > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > > 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 rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > 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 rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.