2009-03-03 6 views
12

Estoy usando herencia de tabla única y tengo comentarios sobre todas las subclases. Solo estoy usando 1 controlador para todos los diferentes tipos de STI. Cuando form_for helper genera una URL para un subtipo, intenta usar un helper para el subtipo, pero quiero que use el helper para el padre.¿Puedo hacer STI y aún utilizar ayudantes de ruta polimórficos?

Este es el error que consigo:

undefined method `subclasstypename_comments_path' for #<ActionView::Base:0x41ef27c> 

El ayudante camino que 'debería' es el uso

parentclasstypename_comments_path 

Respuesta

57

Sí, sólo tiene que utilizar AR::Base#becomes.

Supongamos que su clase base es Account, que se ha subclasificado a GuestAccount y LoginAccount.

@account.is_a? LoginAccount? #=> true 

a continuación, puedes hacer una

form_for [@account.becomes(Account), @comment] do |f| 
    ... 
+0

forma se representa correctamente con la ruta correcta pero nada se salva cuando presente la forma – lulalala

+0

perfecto, gracias. – recurser

+1

¡Me inclino ante tu grandeza! – paulus

Cuestiones relacionadas