I do something similar in a project of mine. I have an API key and retrieve
user information after he logs in. This works very fine in an after-find,
why should that not work in a before_save?

Can't provide the source right now. I have no access until Jan 8th.
Am 21.12.2012 22:39 schrieb "Dan Brooking" <dmbrook...@gmail.com>:

> 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 <timmel...@gmail.com>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" <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.
>>
>>
>>
>
>  --
> 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.


Reply via email to