Read my latest article: 8 things I look for in a Ruby on Rails app (posted Thu, 06 Jul 2017 17:59:00 GMT)

RubyURL.com in a hour...

Posted by Mon, 14 Mar 2005 16:27:51 GMT

Ok, I will admit it. I spent much longer than a hour on this. I spent about a hour coding, testing and adding a few CSS tags to the few pages. I spent a few hours trying to figure out why my RewriteRule was not working.

At about 10pm on Sunday evening, I had an idea… hey, I’ll spend the rest of the night on a simple Rails project… and after being sent a link for a tinyurl, I thought, Hey, I’ll just create RubyURL.com. So, I checked godaddy.com, the domain was available and I will now own it until this time next year.

The system thus far comprises of 1 database table, 2 controllers and 1 model that were added to the default rails install. (not including the Rails templates for new.rhtml and show.rhtml).

The random character string function that I used is here: This allos me to create some random alpha-numeric string like ur029
class Rubyurl < ActiveRecord::Base

  def self.gen_random(size=5)
    chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" 
    short_url = "" 
    srand
    size.times do
      pos = rand(chars.length)
      short_url += chars[pos..pos]
    end
    short_url
  end

end
So, with the standard usage of scaffold I was able to create a random string prior to saving my form:
  def create
    @rubyurl = Rubyurl.new(@params['rubyurl'])
    @rubyurl['short_url'] = Rubyurl.gen_random(5)
    if @rubyurl.save
      flash['notice'] = 'Rubyurl was successfully created.'
      redirect_to :action => 'show', :id => @rubyurl.id
    else
      render_action 'new'
    end
  end

The last part in the ruby code was to make it actually redirect to another location:

class GoController < ApplicationController

  scaffold :rubyurl

  def go
  end

  def index
    @url = Rubyurl.find_first(["short_url = ?", @params["id"]])
    if @url['website_url']
      redirect_to @url['website_url']
    end
  end

end

... so just over 2 1/2 hours later (mainly due to a problem with the RewriteRule..), I am now happy to announce the alpha release of RubyURL.

I’ll write more about my findings when I wake up.. off to bed.

Get help with your Rails project

comments powered by Disqus