2011-02-15 8 views

Respuesta

19

Debido a las nuevas necesidades que se envíen para crear, editar y necesita ser enviado a actualizar una sola form_for no funcionará a menos .. (que no necesariamente recomiendo) se coloca un operador terciario en el form_form params

form_for(@post, :url => (@post.new_record? ? admin_posts_url : admin_post_url(@post))) 

Debido a que en su nueva acción que va a tener Post.new que crea un objeto con un ID nulo, y en su editar acción que tendrá Post.find (params [: id])

+10

En lugar de '@ post.id.nil?', preferiría '@post.new_record ? ' – Chirantan

+0

Estoy de acuerdo, se siente demasiado hacky, así que no lo recomiendas. Pero, ¿cómo podríamos simular la forma predeterminada? Para el comportamiento que siempre será diferente al crear y al editar un objeto, sin usar el recurso y el controlador dedicado. Debería haber algo como esto ': url => {: create => {: action => '',: controller => ''},: update => {: action => '',: controller => '' }} ', ¿no es así? –

+0

En lugar de '@ post.new_record?', Preferiría '@ post.persisted?' Http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-persisted-3F –

Cuestiones relacionadas