rails:freeze:gems | freezzo.com

May 20, 2008

Help with Ruby on Rails?

Filed under: Ruby on Rails — Tags: , , , — Randy @ 4:57 pm

If you come across something that stumps you with ruby or rails, or there is something that you don’t quite understand, let me know. I would love to help out with trying to solve your problem.

Also, if you have something you would like me to explain or create a “how-to” on, let me know about that too. Leave a comment here, or write me an email.
You can contact me at randy@freezzo.com

May 9, 2008

Ruby random number by day

Filed under: Ruby on Rails — Tags: , , — Randy @ 5:06 pm

This is a cool little snippet of code that will return a random number, that changes by day:

def random_by_day(max_value)
    srand Time.now.strftime("%m%d%Y").to_f
    rand(max_value)
end

February 16, 2008

Application Error - Rails application failed to start properly

Filed under: Ruby on Rails — Tags: , , , , , , — Randy @ 6:05 pm

If you’re like me at all, you have run into this issue many times trying to upload your favorite Rails app to your webhost. This can be a very annoying and painful process if you do not understand what is going on exactly so I am going to outline a few tips to follow when attempting to release your new app, and if those tips do not work, I have my final tip that is actually quite useful.

Here is my checklist:

  • Uncomment ENV[’RAILS_ENV’] ||= ‘production’ in environment.rb
  • log and tmp directories have CHMOD 777 access.
  • ALL dispatch files in the public directory are CHMOD 755 at least.
  • Make sure the RAILS_GEM_VERSION is set to something installed on the server.
  • If you have unpacked any custom gems, make sure your app is loading them properly.
  • Make sure any gems you are using are installed on the server.
  • Make sure database.yml file is pointed to correct database.

These usually get the job done, and if you still have issues, feel free to comment here and I’ll try and help.

One thing I have done in that past that helps out really well is to use a “skeleton” app. Basically what I do is the following:

  1. Run rails <appname>_skeleton where your actual app is going to run. This is the app that your domain name will actually use.
  2. Upload the app your working on to some directory on your host.
  3. The key part is here. You are going to symbolically link folders from inside your skeleton app and the folders you would like to do are:
  • app
  • config (Sometimes I link everything inside except the database.yml file and manage it only on the host)
  • db
  • lib
  • test
  • vendor
  • Everything inside public folder except the dispatch files.

This has come in very useful for me as I do not have to worry about permissions on the dispatch files everything I svn up the public directory and my logs are contained by themself. I can also go into my actual app(not the skeleton one) and just run an svn up. You may have to work with the links a little bit to get it working.

If anyone has any comments on this idea or improvements, I would love to hear them.

December 27, 2007

Rails error: syntax error, unexpected tINTEGER Object::1

Filed under: Ruby on Rails — Tags: , , , , — Randy @ 11:28 am

When trying to do a model.find(), I ran into the error, ’syntax error, unexpected tINTEGER Object::1′. If you have a table that uses a magic or reserved name, such as type, you will get this error. This error was a pain in the ass, but I figured out that you can get by it:

class SomeModel < ActiveRecord::Base
    self.inheritance_column = ''
end

The inheritance_column override is the key, basically giving it a different value to use. Hope this helps!

November 28, 2007

You have a nil object when you didn’t expect it!

Filed under: Ruby on Rails — Tags: , , , , — Randy @ 6:44 am

I found this cool little snippet of code somewhere on the internet. Anywhere you access an object in a view, adding the following will ensure the page doesn’t blow up:

 <%= @object.association.variable rescue nil %>

Of course, you won’t know if you have an error now either.

Powered by WordPress