我的路线中有这个设置:
namespace :admin do
resources :posts
end
所以在我的admin / posts_controller.rb中,我有新的,创建和编辑操作。
我想以某种方式重新使用我的新视图页面,b / c页面为表单分配了自定义javascript等,我不想重复自己。
我该怎么做?
即。对于编辑页面,我必须预先填充表单字段,对于新页面,它必须是空的。
对于新页面,它应该发布到“创建”操作,对于编辑我认为它应该发布到不同的“更新”操作(根据我的rake路由是PUT请求)?
答案 0 :(得分:3)
Rails非常聪明,像
这样的形式<% form_for post do |f| %>
<% end %>
如果post.new_record? == true
将发布到创建操作,否则将发布到更新操作。
因此,您可以将表单放在一个部分中,并将其呈现在新的/编辑视图中,这些视图可能具有不同的标题和副本。
或者你可以只有一个视图并根据post.new_record?
执行自己的逻辑 - 但我建议不要这样做,因为你最终会得到一个不必要的复杂视图。