Part of my application counts the number of times a link was clicked. The Link.click function should increment the @link.clicks attribute. I assumed def click @link = Link.find(params[:id]) if @link.increment(''clicks'') redirect_to @link.url else flash[:error] = ''Could not update clicks'' redirect_to :action => ''list'' end end would do the trick. But I can''t get @link.increment to work. Instead if @link.update_attribute(''clicks'', @link.clicks+1) does the trick, but it''s a cludge. I''m just learning Ruby and I''m still wrapping my head around the proper use of attributes. I''m sure I''m making some stupid mistake with the @link.increment line. If someone could point it out, I''d be grateful. :-) Cheers! -- Posted via ruby-forum.com.
I think all you need to do is Link.increment_counter("clicks",@params[:id]) adam On 3/11/06, Aaron Suggs <aaron@ktheory.com> wrote:> > Part of my application counts the number of times a link was clicked. > The Link.click function should increment the @link.clicks attribute. > > I assumed > > def click > @link = Link.find(params[:id]) > if @link.increment(''clicks'') > redirect_to @link.url > else > flash[:error] = ''Could not update clicks'' > redirect_to :action => ''list'' > end > end > > would do the trick. But I can''t get @link.increment to work. Instead > > if @link.update_attribute(''clicks'', @link.clicks+1) > > does the trick, but it''s a cludge. > > I''m just learning Ruby and I''m still wrapping my head around the proper > use of attributes. I''m sure I''m making some stupid mistake with the > @link.increment line. If someone could point it out, I''d be grateful. > :-) > > Cheers! > > -- > Posted via ruby-forum.com. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > lists.rubyonrails.org/mailman/listinfo/rails >-------------- next part -------------- An HTML attachment was scrubbed... URL: wrath.rubyonrails.org/pipermail/rails/attachments/20060311/e9778fe6/attachment.html
Yay! Thanks! -Aaron -- Posted via ruby-forum.com.