Ruby on rails 每次批量更新使用一个URL还是多个URL更好?

Ruby on rails 每次批量更新使用一个URL还是多个URL更好?,ruby-on-rails,rest,Ruby On Rails,Rest,我有一个用户维护页面。此页面有一个用户列表,管理员可以在其中对所选用户进行批量更新。批量更新包括:将角色激活、停用和更新到 我应该发布一个URL,比如/users/bulk\u update.json,然后在其中传递ID列表和方法类型。在bulk_update操作中,我根据方法更新ID 或者每个方法都应该有一个URL,比如/users/bulk\u update\u activate,/users/bulk\u update\u deactivate,和/users/bulk\u update\

我有一个用户维护页面。此页面有一个用户列表,管理员可以在其中对所选用户进行批量更新。批量更新包括:将角色激活、停用和更新到

我应该发布一个URL,比如
/users/bulk\u update.json
,然后在其中传递ID列表和方法类型。在bulk_update操作中,我根据方法更新ID


或者每个方法都应该有一个URL,比如
/users/bulk\u update\u activate
/users/bulk\u update\u deactivate
,和
/users/bulk\u update\u roles

快速回答是:这取决于!)

如果您的更新类型共享许多代码逻辑

1) 使用过滤器:

class FirstController < ApplicationController
  # Other controller code

  before_filter :prepare_update
  after_filter :finalize_update

  def bulk_update_activate
    # Do something here
  end

  def bulk_update_deactivate
    # Do something here
  end
end
class FirstController
2) 使用单个操作:

class SecondController < ApplicationController
  # Other controller code

  def bulk_update
    case params[:operation]
      when :activate then
        # Do something here
      when :deactivate then
        # Do something here
    end
  end
end
class SecondController
如果您的更新是完全独立的,那么您应该编写不同的操作

在我的项目中,我通常发现自己在使用第一种方法


希望它会有用。

像这样的URL比RESTful更加程序化。。。URL本身说明正在采取的行动,而不是关注表示。