我在同一页面上有两个与不同操作相关联的表单。当一个表单失败时,我仍然希望在地址字段中使用相同的URL,这适用于两种表单。我的路线看起来像这样,但第一个路线覆盖了第二个或类似的东西。
match "send-clientletter" => "mail_lists#compose_clientletter", :as => "compose_clientletter", via: :get
match "send-clientletter" => "mail_lists#send_clientletter", :as => "send_clientletter", via: :post
match "send-clientletter" => "mail_lists#client_create", :as => "client_create", via: :post
正如你所看到的,我有两个via: :post
,这就是我的问题..因为我仍然想要两个表格的相同网址,所以我可以render "compose_clientletter"
如果任何错误形式。
有没有办法做到这一点?或者,如果表单失败,我是否必须使用两个不同的URL?
答案 0 :(得分:1)
技术上不是RESTful,你可以切换一个使用PUT,一个使用POST。听起来这听起来不是严格的REST,所以这可能不是问题...
一种替代的,可能更干净的方法来完成同样的事情就是让他们去做同样的动作,这可能看起来像这样:
def my_action
if params[:object_1]
method_to_handle_object_1_creation
elsif params[:object_2]
method_to_handle_object_2_creation
end
end