rails formularios form_for anidados ruby-on-rails namespaces ruby-on-rails-3 form-for

ruby on rails - formularios - Recursos anidados en el espacio de nombres form_for



ruby on rails formularios anidados (3)

@Douglas: No está funcionando para mí. En mi opinión, los nombres en las rutas deberían ser pluralizados. Cuando me gusta recomendado, el error es:

undefined method `admin_admin_person_admin_image_path'' for #<#<Class:0x55976d0>:0x55a9bc8>

Mi solución que funcionó para Nuevo:

form_for @image, url: admin_person_images_path(@person, @image)

Mi solución que funcionó para Editar:

form_for @image, url: admin_person_image_path(@person, @image)

¿Hay alguna solución para combinar esto en una forma?

Editar (Solución para una nueva ruta de espacio de nombres anidada en un formulario):
Ahora tenía la siguiente lógica en las rutas.rb

resources :mobile_users do namespace :candystore do resource :transactions end end

El formulario para new_mobile_user_candystore_transactions es

<%= form_for [@mobile_user], url: mobile_user_candystore_transactions_path(@mobile_user), method: :post do |f| %>

para acceder al método de creación de Candystore :: TransactionsController y no, por ejemplo, al método de creación de MobileUser o al método de actualización de Candystore :: TransactionsController.

Problema

Form_for helper determina incorrectamente la ruta a mi recurso anidado dentro de un espacio de nombres. Los modelos en cuestión son: Forum :: Thread y Forum :: Reply respectivamente, ubicados en una subcarpeta llamada "forum" en mi directorio de modelos. Esto está en Rails 3 BETA 3.

rutas.rb

namespace :forum do root :to => ''threads#index'' resources :threads do resources :replies end end

app / views / forum / replies / _form.html.haml

... - form_for [@thread, @reply] do |f| ...

app / controllers / forum / replies_controller.rb

... def new @reply = Forum::Reply.new end ...

Error

undefined method `forum_thread_forum_replies_path''

En referencia a la línea descrita anteriormente en _form.html.haml


En Rails 3, la única solución que me funcionó correctamente (tanto para los recursos nuevos como para los de edición) fue:

form_for @image, :url => url_for([:admin, @person, @image])


Solución editada en caso de que la gente no lea las reacciones:

<%= form_for [:admin, @person, @image] do |f| %>

Respuesta anterior:

Tengo un proyecto con un espacio de nombres de administrador y recursos de Personas e Imágenes, esta es la forma en que construyo mi form_for en rails3, todavía no he encontrado una manera de hacerlo más limpio ...

<%= form_for [@person, @image], :url => admin_person_images_path do |f| %>