Why find_by_sql works and find(args) doesn't

I'm trying to use Campsite.find(:all, :condition => ['walk_id =
?',params[:walks][:id]]) but fails and instead, if I use
Campsite.find_by_sql("select * from campsites where walk_id =
"+params[:walks][:id]), it works fine. So, I'm wondering why..
I've created combo box as:
<%form_tag do%>
<%=select :walks, :id, @great_walks%>
<%end%>

thanks.

It's "conditions", not "condition":

Campsite.find(:all, :conditions => ['walk_id = ?',params[:walks][:id]])