給定軌的RESTful控制器渲染背後的理由:新建代替redirect_to新建POST?
class WidgetsController
def new
@widget = Widget.new
end
def create
@widget = Widget.new(params[:widget])
render :new and return unless w.save
redirect_to widget_path(@widget)
end
end
除了捕捉到的參數和渲染驗證消息的原因是該公約的render :new
,而不是redirect_to new_widget_path
如果驗證失敗?
由於URL將從/widgets/new
更改爲/widgets
如果驗證失敗不會破壞REST的概念嗎?
如果你重定向,你正在失去params數組,並且你不能預填充字段中的值 – yoavmatchulsky 2012-02-13 11:35:43
是的,我知道如果有重定向,失去params哈希值。我想知道的是除了打破REST之外,還有其他什麼原因嗎? (如果它打破了它) – roo 2012-02-13 13:31:31