How to get around observe_field 'template missing' error?

When my params for my observe_field are empty or 0 I get the 'template
missing' error. I'm trying to emulate the 'user name is valid/not
valid' feature that many apps have when signing up. As long as the
params is greater than zero everything is fine.

def already_taken
    if params[:user].strip.length > 0
      user = User.find_by_name(params[:user])
      if user
        render :update do |page|
          page[:already_taken].replace_html "Already taken!"
          page[:already_taken].set_style :color => 'red'
        end
      elsif user == nil
        render :update do |page|
          page[:already_taken].replace_html "Available!"
          page[:already_taken].set_style :color => 'green'
        end
      end
    end
  end

There must be an easier way to do this because it is such a common
feature. Thanks for any help!

Well, you would be better off using javascript itself instead of the rails helper and check for the value being empty clientside and only query the server if a certain number of characters is entered, but if you want to stick with the rails helpers, you should add:

def already_taken

if params[:user].strip.length > 0

do your thing

else

render :nothing => true
end

end

Best regards

Peter De Berdt

Thanks a lot Peter!

I'm sure there's a better way to do my entire project, but I guess
this is fine for now (plenty of time to learn more and refactor after
project is up).

I would recommend adding something like :condition => 'value.length >
0' to your observe form.

Also you can replace .strip.length > 0 with .blank?