How to test for a Null or empty object?

I have the following action that is supposed to test whether a username exists or not. It seems that the first condition never fails. I have put nothing in the params[:l] hash and the first condition executes. Any ideas?

def index     @oLogin = User.find_by_login(params[:l])     if @oLogin.login != nil       @sLoggedInName = @oLogin.login + ", you've logged in successfully"     else       render :controller => 'session'     end   end

I think it is @oLogin that you need to test for nil before accessing @oLogin.login. This is to check whether the find returned anything.

Chris Gunnels wrote:

I have the following action that is supposed to test whether a username exists or not. It seems that the first condition never fails. I have put nothing in the params[:l] hash and the first condition executes. Any ideas?

def index     @oLogin = User.find_by_login(params[:l])     if @oLogin.login != nil

if @oLogin

You ought to read some Rails tutorials and projects for a while; these patterns must soak in!

Also, nobody around here uses HN like oLogin. We know it's an 'o'bject already!

Also, nobody around here uses HN like oLogin. We know it's an 'o'bject already!

good point...I come from a PHP background so not everything is an object, I just have to get used to that.

Ruby offers very flexible syntax, with many different alternatives for each statement, so we generally try to select the sequence that...

     ...most closely resembles English...

...or whatever your favorite human language is.