# Pobrem with REST routes

**URL:** <https://www.ruby-forum.com/t/pobrem-with-rest-routes/162848>\
**Category:** Rails\
**Created:** [March 14, 2009, 2:38pm UTC](https://www.ruby-forum.com/t/pobrem-with-rest-routes/162848 "2009-03-14T14:38:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![chimorito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/54ee81/32.png) [@chimorito](https://www.ruby-forum.com/u/chimorito)\
**Post date:** [March 14, 2009, 2:38pm UTC](https://www.ruby-forum.com/t/pobrem-with-rest-routes/162848/1 "2009-03-14T14:38:06Z")

</div>

Hi first at all sorry if mu english is not the best.

I have this models:

Encuesta-\>titulo and description are string. Encuesta has\_many  
:preguntas  
Preguntas-\> texto is string, encuesta\_id and orden are integer. Pregunta  
belongs\_to :encuesta and has\_many :soluciones  
Soluciones-\> texto is string, pregunta\_id and orden are integer.  
Soluciones belongs\_to :pregunta

Routes:  
map.resources :encuestas do |encuesta|  
map.resources :preguntas do |pregunta|  
pregunta.resources :solucions  
end  
end

I can create preguntas for encuestas. But in the index view of preguntas  
I have this code:

\<%= link\_to pregunta.texto,  
encuesta\_pregunta\_solucions\_path(@encuesta, @pregunta) %\>

If I choose one pregunta the url that shows firefox is like that:

[http://localhost:3000/encuestas/1/preguntas//solucions](http://localhost:3000/encuestas/1/preguntas//solucions)

It doesn’t show preguntas\_id in the url ☹

In another way if i write for example this url in firefox:

[http://localhost:3000/encuestas/1/preguntas/1/solucions](http://localhost:3000/encuestas/1/preguntas/1/solucions)

It shows me this error:  
NoMethodError in SolucionsController#index

undefined method `find’ for #Encuesta:0x7f790aa4fdc8

RAILS\_ROOT: /home/jose/marzo  
Application Trace | Framework Trace | Full Trace

/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active\_record/attribute\_methods.rb:260:in  
`method_missing' app/controllers/solucions_controller.rb:94:in `find\_encuesta\_pregunta’

Parameters:

{“encuesta\_id”=\>“1”,  
“pregunta\_id”=\>“1”}

My code-\> Solucion controller

before\_filter :find\_encuesta\_pregunta

def index

```
@solucions = @pregunta.solucions.find(:all)
respond_to do |format|
  format.html # index.html.erb
  format.xml { render :xml => @solucions }
end

```

end

def find\_encuesta\_pregunta  
@encuesta=Encuesta.find(params[:encuesta\_id])  
@pregunta=@encuesta.find(params[:pregunta\_id])  
end

Anybody can help me?

---

<div class="post-metadata">

**Author:** ![chimorito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/54ee81/32.png) [@chimorito](https://www.ruby-forum.com/u/chimorito)\
**Post date:** [March 15, 2009, 5:31pm UTC](https://www.ruby-forum.com/t/pobrem-with-rest-routes/162848/2 "2009-03-15T17:31:21Z")

</div>

Ok, first, i can speak spanish, so i’ll write back in spanish, if that  
makes it any easier for you. unfortunately i’m not sure how to add an  
accent on my keyboard, so hopefully readability will still be good,  
but if you write me back, please write me back in english (and you’re  
english is good enough 🙂 ).

Espero que mi espanol sea suficiente tambien. te digo ahora que voy a  
usar ‘tu’ in no ‘ud.’ simplemente porque es lo que a estoy  
acostumbrado y por lo demas, no se que seria apropriado.

No se si esto es como lo escribiste en tu progama, pero vi que  
escribiste esta lina:  
belongs\_to :encuesta and has\_many :soluciones

y despues vi que siempre llamas el controller de soluciones  
‘solucions’.  
Me parece que podria ser esto.  
que en la lina  
has\_many :soluciones  
usaste espanol correcto, y en lo demas tenias que usar la  
pluralizacion que hace Rails y que esto es el problema?

No se si te importa, pero Rails tiene las funciones de pluralizacion  
para que cosas sean mas convenientes en ingles. Si es dificil siempre  
pensar que tienes que pluralizar como se aria en ingles para palabras  
que de verdad son espanoles (que, me imagino me  
causaria…annoyance?), esto me parace que derepente seria mejor  
encontrar una manera de cambiar la pluralizacion. leyendo estos  
articulos:

[http://slash7.com/articles/2005/11/17/rails-howto-pluralizing](http://slash7.com/articles/2005/11/17/rails-howto-pluralizing)  
[http://rails.rubyonrails.org/classes/Inflector.html#M001627](http://rails.rubyonrails.org/classes/Inflector.html#M001627)  
[http://softwareas.com/bitten-by-rails-pluralizationinflection](http://softwareas.com/bitten-by-rails-pluralizationinflection)

me parece que lo podrias lograr haciendo algunas addiciones o cambios  
a la funcion ‘pluralize’ oh mirando a las reglas (‘rules’) que usa  
rails.

si no es este problem de pluralizacion, no se que seria.

let me know if that works,  
-Gabe

On Mar 14, 8:38 am, Jose vicente Ribera pellicer \<rails-mailing-

---

<div class="post-metadata">

**Author:** ![chimorito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/54ee81/32.png) [@chimorito](https://www.ruby-forum.com/u/chimorito)\
**Post date:** [March 15, 2009, 6:32pm UTC](https://www.ruby-forum.com/t/pobrem-with-rest-routes/162848/3 "2009-03-15T18:32:55Z")

</div>

> Ok, first, i can speak spanish, so i’ll write back in spanish, if that  
> makes it any easier for you.

ok, now I DON’T, so if i post anything you already said: i’m sorry.

your method missing comes from this line:  
@pregunta=@encuesta.find(params[:pregunta\_id])

find is not defined on instances.  
try something like:  
@pregunta=Pregunta.find(params[:pregunta\_id])

or if there is a relation between those models maybe  
@pregunta=@encuesta.preguntas.find(params[:pregunta\_id])  
or just  
@pregunta=@encuesta.pregunta  
that depends on the type of their relationship.
