【发布时间】:2015-06-04 22:39:13
【问题描述】:
我正在使用 ruby on rails 构建一个示例电子商务应用程序。我的控制器名称之一是“products_controller”。该控制器也作为嵌套控制器放置在内部。这些控制器内部的操作是相同的。我们如何表示这些动作无需重复代码。 代码示例如下。
app/controllers/products_controller.rb
def index
@product = Product.all
@vari = @products.variants
.............
.............
end
app/controllers/master_admins/products_controller.rb
def index
@product = Product.all
@vari = @products.variants
.............
.............
end
app/controllers/master_admins/properties_controller.rb
def product
@product = Product.all
@vari = @products.variants
.............
.............
end
上述动作包含相同的代码集。我们如何重构它以使代码不会重复。
提前谢谢....
【问题讨论】:
-
我认为更好的问题是为什么需要多个具有相同代码的控制器?如果您担心访问控制,为什么不使用角色来处理呢?
-
我也在嵌套控制器中使用这组代码。这个产品控制器索引操作发生在我项目的以下 url 中。 "localhost:3000/products","localhost:3000/master_admins/products","localhost:3000/property_admins/products"。
标签: ruby-on-rails ruby refactoring ruby-on-rails-4.2 ruby-2.2