在rails 3中,是否可以创建适用于新操作,更新操作和编辑操作的form_for?
如果是,我该怎么做?
我有一个管理部分,所以我的网址看起来像:
/admin/posts/ {new,update, edit}
答案 0 :(得分:29)
让form_for
处理它:
控制器:
class ControllerName
def new
@post = Post.new
end
def edit
@post = Post.find params[:id]
end
end
视图:
<%= form_for [:admin, @post] do |f| %>
<% end %>
答案 1 :(得分:19)
因为需要发送新的创建,并且需要发送更新单个form_for的编辑将无法工作..除非(我不一定建议)你在form_form参数中放置第三个运算符
form_for(@post, :url => (@post.new_record? ? admin_posts_url : admin_post_url(@post)))
因为在你的新动作中你将会有 Post.new ,它会创建一个带有nil id的对象,并且在你的编辑动作中你会有 Post.find(params [: ID])强>