Hi there, I am relatively new to Rails and I am trying to do a fairly common task. I have a page that displays a series of links that go to offsite URLS. Next to each link is a counter that shows how many times that link has been clicked-through. I would like to be able to have the user click on a the link, be directed to the links address, AND at the same time, have a function create and add a "click-through" to the "clicks" database. I was reading about the link_to_function helper but that doesn''t seem to be quite what I want, but then again, I may not be understanding it completely. Does anyone have any method for doing anything similar in their apps? I would love an help or advice. Thank you in advance. -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Quoting Michael Murillo <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>:> Hi there, > > I am relatively new to Rails and I am trying to do a fairly common task. > I have a page that displays a series of links that go to offsite URLS. > Next to each link is a counter that shows how many times that link has > been clicked-through. I would like to be able to have the user click on > a the link, be directed to the links address, AND at the same time, have > a function create and add a "click-through" to the "clicks" database. > > I was reading about the link_to_function helper but that doesn''t seem to > be quite what I want, but then again, I may not be understanding it > completely. >Link to a function like the following. It makes a GET request to the server and opens a new window to the url. The link_to also follows. HTH, Jeffrey <%= link_to_function truncate(article.title, 60), "clickThru(''#{article.url}'',''#{article[:id]}'', ''click'')", :title => article.feed.title, :href => article[:id] %> function clickThru(url, id, verb) { new Ajax.Request(''/articles/''+id+''/''+verb, {asynchronous:true, evalScripts:true, method:''get''}); window.open(url); } -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Jeffrey L. Taylor wrote:> Quoting Michael Murillo <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>: > <%= link_to_function truncate(article.title, 60), > "clickThru(''#{article.url}'',''#{article[:id]}'', ''click'')", > :title => article.feed.title, :href => article[:id] %> > > > function clickThru(url, id, verb) { > new Ajax.Request(''/articles/''+id+''/''+verb, > {asynchronous:true, evalScripts:true, method:''get''}); > window.open(url); > }Thank you Jeffrey. I played around with it a bit and was wondering how the function intends to post to the clicks database. Is it by using that "id" => "click"? Or does "click" in your example refer to a method in a controller? Thanks again Jeffrey. -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Quoting Michael Murillo <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>:> Jeffrey L. Taylor wrote: > > Quoting Michael Murillo <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>: > > <%= link_to_function truncate(article.title, 60), > > "clickThru(''#{article.url}'',''#{article[:id]}'', ''click'')", > > :title => article.feed.title, :href => article[:id] %> > > > > > > function clickThru(url, id, verb) { > > new Ajax.Request(''/articles/''+id+''/''+verb, > > {asynchronous:true, evalScripts:true, method:''get''}); > > window.open(url); > > } > > Thank you Jeffrey. I played around with it a bit and was wondering how > the function intends to post to the clicks database. Is it by using > that "id" => "click"? Or does "click" in your example refer to a method > in a controller? >Sorry for the slow reply. I have been at SxSW Interactive for the last 5 days. This code is copied from my app, it will need some editing for your app. Ajax.request() is in the Prototype Javascript library, it makes a request to the server. The first parameter is the URL to call, the rest is copied from the code generated by link_to_remote. evalScripts:true indicates Javascript is expected in the reply and should be evaluated, method:''get'' indicates to make a HTTP GET request instead of the default POST. The action on the server calls the model(s) to update the database. HTH, Jeffrey -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Gotcha! Perfect. Thank you Jeffrey. I got it to work with the following. In my view: <%= link_to_function truncate(link.name, 60), "clickThru(''#{link.link}'',''#{link[:id]}'', ''votes'')", :title => link.name, :href => link.link %> In my application.js function clickThru(url, id, verb) { new Ajax.Request(''/links/''+id+''/''+verb, {asynchronous:true, evalScripts:true, method:''post''}); window.open(url); } Thank you so much! This was awesome and your advise came at the end of maybe 5 hours of internet searching. -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.