我的编辑和新操作应该重复使用相同的视图吗? (编辑帖子)

时间:2010-12-16 14:01:50

标签: ruby-on-rails

我的路线中有这个设置:

namespace :admin do
     resources :posts

  end

所以在我的admin / posts_controller.rb中,我有新的,创建和编辑操作。

我想以某种方式重新使用我的新视图页面,b / c页面为表单分配了自定义javascript等,我不想重复自己。

我该怎么做?

即。对于编辑页面,我必须预先填充表单字段,对于新页面,它必须是空的。

对于新页面,它应该发布到“创建”操作,对于编辑我认为它应该发布到不同的“更新”操作(根据我的rake路由是PUT请求)?

1 个答案:

答案 0 :(得分:3)

Rails非常聪明,像

这样的形式
<% form_for post do |f| %>
<% end %>
如果post.new_record? == true

将发布到创建操作,否则将发布到更新操作。

因此,您可以将表单放在一个部分中,并将其呈现在新的/编辑视图中,这些视图可能具有不同的标题和副本。

或者你可以只有一个视图并根据post.new_record?执行自己的逻辑 - 但我建议不要这样做,因为你最终会得到一个不必要的复杂视图。