Forum: Rails-ES Find

Posted by Alberto Lopez (alb3rtop)
on 2010-03-09 20:09
Buenas, lo que quiero hacer es simple, pero no me da salido y no sé que
hago mal.


def update
  @who = Who.find(params[:id])
   if @who.parent_id == Who.find(:all, :conditions => { :parent_id =>
@who.parent_id})

  .....

  else

  ....

  end
end

Con esto pretendo que si @who.parent_id(el objeto actual que estoy
actualizando) es igual a otro who cualquiera y que tenga el mismo
parent_id que el que estoy creando haga una cosa y en caso contrario
haga otra.
Posted by Rafael Cañizares (raffacf)
on 2010-03-18 09:19
Alberto Lopez wrote:
> Buenas, lo que quiero hacer es simple, pero no me da salido y no sé que
> hago mal.
> 
> 
> def update
>   @who = Who.find(params[:id])
>    if @who.parent_id == Who.find(:all, :conditions => { :parent_id =>
> @who.parent_id})
> 
>   .....
> 
>   else
> 
>   ....
> 
>   end
> end
> 
> Con esto pretendo que si @who.parent_id(el objeto actual que estoy
> actualizando) es igual a otro who cualquiera y que tenga el mismo
> parent_id que el que estoy creando haga una cosa y en caso contrario
> haga otra.

Hola, me parece que tu problemas es que comparas in array con un 
integer. En tu comparación haces:

if @who.parent_id !!!!esto es integer!!!! == Who.find(:all, :conditions 
=> { :parent_id => @who.parent_id}) !!!esto devuelve un array!!!
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.