Undefined method `news_path'

Hola, estaba intentando crearme un controlador de noticias (news)

script/generate scaffold new titulo:string

Me crea el controlador news, el modelo new y mi tabla news.

Lo primero que me saca al ir al index de mi clase news, es este error:

|undefined local variable or method `new_new_path’ for #ActionView::Base:0x2ba47159fbf0|

Extracted source (around line #28):

|25:
26:

27:
28: <%= link_to ‘New new’, new_new_path %>
|

mirando el rake routes a ver las rutas que me da, lo he cambiado por:

|<%= link_to ‘New new’, new_news_path %>, ahora si me funciona

El siguiente paso quiero crear una nueva noticia (/news/new) a lo que me
saca el siguiente error:

||undefined method `news_path’ for #ActionView::Base:0x2b5401db7420|

Extracted source (around line #5):

|2:
3: <%= error_messages_for :new %>
4:
5: <% form_for(@new) do |f| %>
6:


7: Titulo

8: <%= f.text_field :titulo %> |

|Hay algún problema por usar la palabra “news” como controlador? Lo he intentado con “latest_news” y tampoco me funciona, me saca el mismo error en el mismo punto, no encuentra news_path, a qué puede deberse? Gracias

|

On Thu, Apr 10, 2008 at 10:28 AM, Miguel Angel Calleja Lázaro
[email protected] wrote:

Hola, estaba intentando crearme un controlador de noticias (news)

script/generate scaffold new titulo:string

Busca “new” en http://wiki.rubyonrails.org/rails/pages/ReservedWords .

Federico B.
escribió:>
Me suponía algo así, que estaría reservado, pero por si acaso …, voy a
tener que buscarme otro nombre para el controlador, gracias

Federico B.
escribió:>
Había probado también con latest_news, vamos que no le gusta que esté
‘new’ en la palabra porque también me da error al crear un recurso
(/latest_news/new):

|latest_news_url failed to generate from {:controller=>“latest_news”, :action=>“show”} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: [“latest_news”, :id] - are they all satisfied?|

Es normal? lo estoy creando como una palabra compuesta, ya no es que sea
‘new’ a solas

On Thu, Apr 10, 2008 at 11:02 AM, Miguel Angel Calleja Lázaro
[email protected] wrote:

Había probado también con latest_news, vamos que no le gusta que esté
‘new’ en la palabra porque también me da error al crear un recurso
(/latest_news/new):

Creería que el problema en este caso es que al usar el scaffold
normal, tu ruta haría match con las siguientes acciones:

  • latest_news/new - Crear un nuevo recurso (acción new)
  • latest_news/new - Mostrar el recurso “new” (acción show).

Esto lo podrías solucionar asegurandote de que latest_news/new (como
en show) tenga que recibir un identificador, pero personalmente me
aseguraría de que en vez de trabajar con 1 new, 2 news trabajará con 1
news, 2 news, como está sugerido en la página que te enlacé
anteriormente.

Federico B.
escribió:> - latest_news/new - Mostrar el recurso “new” (acción show).

Esto lo podrías solucionar asegurandote de que latest_news/new (como
en show) tenga que recibir un identificador, pero personalmente me
aseguraría de que en vez de trabajar con 1 new, 2 news trabajará con 1
news, 2 news, como está sugerido en la página que te enlacé
anteriormente.

Lo siento pero no lo entiendo, no se cómo hacerlo …

Ruben. D. escribió:

Hola Miguel, creo que tienes un problema tambien con la
singularización/pluralización, no creo que el singular de “news” sea
“new”.

Saludos.

Si, también cierto, lo acabo de ver desde la consola, voy a tener que
hacer otro inflector a ver para el singular

Hola Miguel, creo que tienes un problema tambien con la
singularización/pluralización, no creo que el singular de “news” sea
“new”.

Saludos.

El día 10/04/08, Federico B. [email protected] escribió:

Miguel Angel Calleja Lázaro escribió:

hacer otro inflector a ver para el singular


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es

He añadido ésto al routes:
map.resources :news, :singular=>:news_instance

Después de cambiar las rutas:
edit_news_instance_path(news) -> /news/edit/1
news_instance_path(news) -> /news/show/1
new_news_instance_path -> /news/new
news_path -> /news

He conseguido que funcione todo menos el método edit, me sale este
error:

Showing /news/edit.html.erb/ where line #5 raised:

|You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.to_sym|

Extracted source (around line #5):

|2:
3: <%= error_messages_for :news %>
4:
5: <% form_for(@news) do |f| %>
6:


7: Name

8: <%= f.text_field :name %>
|

Y ahí me he quedado, podría crearme otro nombre para el controlador que
no fuera ‘news’ y no diera problemas, pero bueno, así entiendo mejor el
funcionamiento de las rutas y los helpers que genera, alguna sugerencia
con este nuevo error?

El día 11/04/08, Miguel Angel Calleja Lázaro [email protected]
escribió:

He conseguido que funcione todo menos el método edit, me sale este error:

Showing /news/edit.html.erb/ where line #5 raised:

Hola Miguel,

Prueba en singular (@new) :

<% form_for(@new) do |f| %>

Un saludo.

Hola Miguel, parece que en @news no estas guardando una instancia del
modelo, creo que te faltaria algo asi:

#controlador

def new
@news = Modelo.new
end

Saludos.

El día 11/04/08, Miguel Angel Calleja Lázaro [email protected]
escribió:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs