Ruby Forum Rails-ES > ayuda con routes

Posted by David navarrete David (wiredlain)
on 12.08.2008 01:09
Hola.

tengo un controller que hace varias cosas.

dentro de las cuales hace una busqueda, y esta misma la pagino
(mislav-will-paginate).

ahora.. cuando llego al resultado de la busqueda...

me da el siguiente error

"Couldn't find Noticia with ID=busqueda_noticias"
en la accion show.

se que tiene que ver con modificar el routes. pero la verdad que me la
gano

saludos y gracias
Posted by Daniel Esparza (tupanka)
on 12.08.2008 01:18
Hola, David

¿Puedes colocar el codigo del controlador? que version de rails usas?
Posted by David navarrete David (wiredlain)
on 12.08.2008 01:28
Daniel Esparza wrote:
> Hola, David
> 
> ¿Puedes colocar el codigo del controlador? que version de rails usas?

uso la 2.1.0

class DiariosInmobiliariosController < ApplicationController
  layout 'index'
  def index
    @noticias = Portada.find(:all, :conditions => ['seccion_id = 1'], 
:limit => 2, :order =>'fecha_publicacion ASC')
    @portada_galeria = Galeria.find(:all, :conditions => 
['fecha_publicacion < ? ', Date.today], :order => 'fecha_publicacion 
ASC', :limit => 10)
    @entrevistas = Portada.find(:all, :conditions => ['seccion_id = 2'], 
:limit => 1, :order =>'fecha_publicacion ASC')
    @reportajes = Portada.find(:all, :conditions => ['seccion_id = 7'], 
:limit => 1, :order =>'fecha_publicacion ASC')
    @expertos = Portada.find(:all, :conditions => ['seccion_id = 3'], 
:limit => 1, :order =>'fecha_publicacion ASC')
    @mas_noticias = Noticia.find(:all, :conditions => 
['fecha_publicacion < ? ', Date.today], :limit => 10 ,:order 
=>'fecha_publicacion ASC')
    #@secciones = Seccion.find(:all)
  end

  def show
    @noticia = Noticia.find(params[:id])
    publicar = '1'
    @ultima_fecha = Noticia.find(:last,:conditions => 
["fecha_publicacion < ? ",Date.today], :limit => 10)
    @ultimas_noticias = Noticia.find(:all,:conditions => 
["fecha_publicacion < ? ",@ultima_fecha.fecha_publicacion], :limit => 
10)
  end

  def busqueda_noticias
    @busqueda = params[:busqueda]
    unless params[:busqueda].blank?
      @parametros = params[:busqueda]
      @resultado = Noticia.find(:all,
                    :conditions => ["primera_pagina LIKE ? ", 
"%#{@parametros[:buscar]}%"],
                    :order => "fecha_publicacion ASC")
      @busqueda = @resultado.paginate :page => params[:page], :per_page 
=> 10
    end
  end

  def mostrar_galeria
    @galeria = Galeria.find(params[:id])
    @fotos = @galeria.fotos_galerias.paginate :page => params[:page], 
:per_page => 1
    render :layout => 'galerias'
  end

end

Posted by Ruben Davila (rdavila)
on 12.08.2008 01:29
(Received via mailing list)
Hola David, lo que necesitas se soluciona de la siguiente manera:

#config/routes.rb
map.resources :noticias, :collection => {:busqueda_noticias => :get}

Creo que seria mejor que pares el desarrollo de tu aplicacion y te 
empapes
bien sobre Rest con Rails, de todas maneras aqui te dejo algo:

http://topfunky.com/clients/peepcode/REST-cheatsheet.pdf

Salud!
Posted by David navarrete David (wiredlain)
on 12.08.2008 01:45
Ruben Davila wrote:
> Hola David, lo que necesitas se soluciona de la siguiente manera:
> 
> #config/routes.rb
> map.resources :noticias, :collection => {:busqueda_noticias => :get}
> 
> Creo que seria mejor que pares el desarrollo de tu aplicacion y te 
> empapes
> bien sobre Rest con Rails, de todas maneras aqui te dejo algo:
> 
> http://topfunky.com/clients/peepcode/REST-cheatsheet.pdf
> 
> Salud!

muchas gracias

por ahora no podemos parar, porque hay que entrar el proyecto el 1 de 
sept >_<!!

pero se te agradece tu ayuda!