Hola a todos, Yo soy bastante nuevo con rails asi que tomen lo que les digo con pinzas, y si ven que estoy equivocado me avisan ;)
A mi me ha pasado algo similar.... Lo que me pasaba es que al querer llamar a un action que defini yo (supongamos que el controller se llama "contacts" y el action se llama "show_profiles") me saltaba el error de que no encontraba el registro con el id = "show_profiles" en mi archivo de routes tenia: (1) - map.resources :contacts (2) - map.contacts_show_profiles '/contacts/show_profiles/', :controller => 'contacts', :action => 'show_profiles' en (1) se define que si viene algo con url ".../contacts/algo" el asume de que se llama al action show con el id = algo.... de ahi es que viene el error, con algo=show_profiles al poner la definición (2) antes que la (1) dejo de darme el error. En su momento asumi que rails barre con el archivo del comienzo al final y para con la primera ruta que le concuerda. Espero estar en lo correcto y no marear mas al compañero..jeje saludos!! Pablo El 4 de agosto de 2010 11:17, Nestor Rodriguez <[email protected]>escribió: > Aquí esta el pastie de como resolví el problema > http://www.pastie.org/1075044 > > Lo que hice fue hacer un routing personalizado, como lo llamo yo jeje, y en > ves de ponerle el nombre del controlador, le puse otro nombre y funciono!! > > map.connect 'entradas1/entrada_general' , > :conditions => { :method => [:get, :post] }, > :controller => "entradas" , > :action => "entrada_general" > > No se si es la mejor manera, quisiera que me lo dijeran, pero hasta ahora > funciono. > > Si le pongo el nombre del mismo controlador, no se porque llama al método > SHOW, no tengo ni idea porque hace eso pero como esto ya me funciono estoy > un poco tranquilo, pero me gustaría saber la manera correcta de hacerlo. > > Desde ya gracias > > Nestor > > > ================================================================================================ > > 2010/8/3 Nestor Rodriguez <[email protected]> > >> Le probé de varias formas así como me aconsejaron pero no se porque me >> lanza el siguiente error >> >> ActiveRecord::RecordNotFound in EntradasController#show >> >> Couldn't find Entrada with ID=entradas_general >> >> RAILS_ROOT: C:/Users/nestor/Documents/rails/control_ow >> Request >> >> *Parameters*: >> >> {"id"=>"entradas_general"} >> >> La forma en que lo envie es el siguiente: >> def entradas_general >> @entradas = Entrada.paginate :page => params[:page], :per_page => >> 10,:order=>"fecha_hora desc" >> >> respond_to do |format| >> #format.html # index.html.erb >> #format.html { render :action => "index" } >> format.html { render :template => "index" } >> >> format.xml { render :xml => @entradas } >> end >> end >> >> Ya probé de otras maneras las que me aconsejaron pero siempre es el mismo >> error, podrian decirme que estoy haciendo mal. >> >> Desde ya gracias amigos. >> Nestor >> >> *From:* Rodrigo Dominguez >> *Sent:* Monday, August 02, 2010 8:59 PM >> *To:* Grupo Ruby Argentina >> *Subject:* Re: [RubyArg] Como usar un render para ver el mismo view para >> dos o tres controladores diferentes? >> >> Proba con >> >> def entradas_general >> >> @entradas = Entrada.paginate :page => params[:page], :per_page => >> 10,:order=>"fecha_hora desc" >> >> respond_to do |format| >> format.html { render :template => "entradas/index" } >> format.xml { render :xml => @entradas } >> end >> >> end >> >> O tambien podes probar, si la acción esta dentro del mismo controlador, >> con render :template => “index” o con render :action => “index” >> >> >> Saludos ;) >> >> >> El 03/08/10 00:47, "Nestor Rodriguez" <[email protected]> escribió: >> >> Que tal amigos de RoR, estoy mareándome con esto de los render, según lo >> que lei el render lo que hace es llamar a diferentes view, es decir a >> diferentes html.erb segun se le indique. >> >> Aqui tengo la accion que llama al index (segun entiendo no al controlador >> sino a su vista) >> def entradas_general >> @entradas = Entrada.paginate :page => params[:page], :per_page => >> 10,:order=>"fecha_hora desc" >> >> respond_to do |format| >> render :template => "entradas/index.html.erb" <<================ >> format.xml { render :xml => @entradas } >> end >> end >> >> Sin embargo me devuelve un error. >> >> La verdad no entiendo muy bien como funciona, yo solo estoy queriendo usar >> el mismo view para dos controladores diferentes. >> >> Si alguien puede ayudarme. >> >> Atte. >> Nestor >> >> ------------------------------ >> _______________________________________________ >> Ruby mailing list >> [email protected] >> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar >> >> ------------------------------ >> >> _______________________________________________ >> Ruby mailing list >> [email protected] >> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar >> >> >> _______________________________________________ >> Ruby mailing list >> [email protected] >> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar >> >> > Hola Nestor, > > ¿Podrías hacer un pastie de la vista/template "entradas/index"? > De todas maneras, como ya te han mencionado, me parece que hay algún > problema con tu routes.rb ya que parece que ni siquiera se está ejecutando > este nuevo método de tu controller. > Recordá también que las variables de instancia requeridas en esa vista > también estén definidas en este nuevo controller method "entradas_general". > Esto es, si en tu template index tenés algo como @foo, entonces es esperado > que esa variable también la definas en el método "entradas_general" ya que > lo que vos estarías haciendo es un render solo de la vista y no un redirect > al index. > > Saludos, > > -- > Ariel Diaz Bermejo > http://www.linkedin.com/in/adiazbermejo > (X5800AOD) - Río Cuarto - Argentina > > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > >
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
