Ruby on rails 每次批量更新使用一个URL还是多个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\
/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本身说明正在采取的行动,而不是关注表示。