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.