document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/pygment_trac.css" />');
document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/embed.css" />');
document.write('<div class="flowcoder_post flowcoder_clearfix">');
document.write('<div class="flowcoder_posttitle"><a href=\"http://flowcoder.com/165\">CLICK THAT BUTTON<\/a></div>');
document.write('<div class="flowcoder_postbody flowcoder_syntax"><div class=\"highlight\"><pre><span class=\"c1\"># The Sinatra app behind http://clickthatbutton.com/ running on http://heroku.com<\/span>\n\n<span class=\"c1\"># I can&#39;t figure out how to increment the &quot;clicks&quot; counter and get the db to return <\/span>\n<span class=\"c1\"># the new total without doing another request... holler if you know how...<\/span>\n<span class=\"c1\"># I tried to use Sequel and ended up getting pissed off somehow, so reverted to<\/span>\n<span class=\"c1\"># using Active Record and laying in the hammock.<\/span>\n\n<span class=\"nb\">require<\/span> <span class=\"s1\">&#39;rubygems&#39;<\/span>\n<span class=\"nb\">require<\/span> <span class=\"s1\">&#39;sinatra&#39;<\/span>\n<span class=\"nb\">require<\/span> <span class=\"s1\">&#39;erb&#39;<\/span>\n<span class=\"nb\">require<\/span> <span class=\"s1\">&#39;active_record&#39;<\/span>\n\n<span class=\"n\">dbconfig<\/span> <span class=\"o\">=<\/span> <span class=\"no\">YAML<\/span><span class=\"o\">.<\/span><span class=\"n\">load<\/span><span class=\"p\">(<\/span><span class=\"no\">File<\/span><span class=\"o\">.<\/span><span class=\"n\">read<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;config/database.yml&#39;<\/span><span class=\"p\">))<\/span>\n<span class=\"no\">ActiveRecord<\/span><span class=\"o\">::<\/span><span class=\"no\">Base<\/span><span class=\"o\">.<\/span><span class=\"n\">establish_connection<\/span> <span class=\"n\">dbconfig<\/span><span class=\"o\">[<\/span><span class=\"s1\">&#39;production&#39;<\/span><span class=\"o\">]<\/span>\n\n<span class=\"k\">class<\/span> <span class=\"nc\">CreateClicks<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ActiveRecord<\/span><span class=\"o\">::<\/span><span class=\"no\">Migration<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">up<\/span>\n    <span class=\"n\">create_table<\/span> <span class=\"ss\">:clicks<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">t<\/span><span class=\"o\">|<\/span>\n      <span class=\"n\">t<\/span><span class=\"o\">.<\/span><span class=\"n\">integer<\/span> <span class=\"ss\">:clicks<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:default<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:null<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"kp\">false<\/span>\n    <span class=\"k\">end<\/span>\n    <span class=\"no\">Click<\/span><span class=\"o\">.<\/span><span class=\"n\">create!<\/span><span class=\"p\">(<\/span><span class=\"ss\">:clicks<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span>\n  <span class=\"k\">end<\/span>\n<span class=\"k\">end<\/span>\n\n<span class=\"k\">class<\/span> <span class=\"nc\">Click<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ActiveRecord<\/span><span class=\"o\">::<\/span><span class=\"no\">Base<\/span>\n<span class=\"k\">end<\/span>\n\n<span class=\"n\">get<\/span> <span class=\"s1\">&#39;/&#39;<\/span> <span class=\"k\">do<\/span>\n  <span class=\"n\">response<\/span><span class=\"o\">.<\/span><span class=\"n\">set_cookie<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;click&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span> <span class=\"k\">if<\/span> <span class=\"n\">request<\/span><span class=\"o\">.<\/span><span class=\"n\">cookies<\/span><span class=\"o\">[<\/span><span class=\"s1\">&#39;click&#39;<\/span><span class=\"o\">].<\/span><span class=\"n\">nil?<\/span>\n  <span class=\"vi\">@clicks_total<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Click<\/span><span class=\"o\">.<\/span><span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"n\">clicks<\/span>\n  <span class=\"n\">erb<\/span> <span class=\"ss\">:index<\/span>\n<span class=\"k\">end<\/span>\n\n<span class=\"n\">post<\/span> <span class=\"s1\">&#39;/&#39;<\/span> <span class=\"k\">do<\/span>\n  <span class=\"no\">Click<\/span><span class=\"o\">.<\/span><span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"n\">increment!<\/span><span class=\"p\">(<\/span><span class=\"ss\">:clicks<\/span><span class=\"p\">)<\/span>\n  <span class=\"no\">Click<\/span><span class=\"o\">.<\/span><span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"n\">clicks<\/span><span class=\"o\">.<\/span><span class=\"n\">to_s<\/span>\n<span class=\"k\">end<\/span>\n<\/pre><\/div>\n</div>');
document.write('<div class="flowcoder_bottombar flowcoder_clearfix">');
document.write('<div class="flowcoder_postedby">Posted by <a href=\"http://flowcoder.com/trevorturk\">trevorturk<\/a> on <a href=\"http://flowcoder.com/\">Flowcoder<\/a></div>');
document.write('<div class="flowcoder_viewraw"><a href=\"http://flowcoder.com/165.txt\">view raw<\/a></div>');
document.write('</div></div>');