1

我有两个表单链接到同一页面上的不同操作。当一个表单失败时,我仍然希望在地址字段中使用相同的 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,这就是我的问题。因为我仍然想要两个表单的相同 url,所以render "compose_clientletter"如果任何表单中有任何错误,我都可以这样做。

有没有办法做到这一点?或者如果表单失败,我是否必须使用两个不同的网址?

4

1 回答 1

1

好吧,从技术上讲不是 RESTful,您可以切换一个使用 PUT 和一个使用 POST。无论如何,这听起来不像是严格的 RESTful,所以这可能不是问题......

完成相同事情的另一种可能更简洁的方法是让它们执行相同的操作,这可能看起来像这样:

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
于 2013-05-31T07:04:31.663 回答