Как может одна форма_for работать для новых, обновлять и редактировать?

В rails 3, возможно ли создать form_for, который работает как для новых, так и для обновления и редактирования?

Если да, как это сделать?

У меня есть раздел администратора, поэтому мои URL-адреса выглядят следующим образом:

/admin/posts/ {new,update, edit}

Ответы

Ответ 2

Поскольку новые нужно отправлять, а редактирование нужно отправлять, чтобы обновить один form_for, это не сработает. Если (я не обязательно рекомендую), вы размещаете третичный оператор в параметрах form_form

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

Потому что в вашем новом действии у вас будет Post.new, который создает объект с идентификатором nil, и в вашем действии редактирования у вас будет Post.find(params [: ID])