2

我的代码开始重复......因为我不知道将需要由(2)不同控制器访问的方法/函数放在哪里,为了快速启动它,我只是复制了它。

所以我有一个users_controller,还有一个pages_controller 和posts_controller。

在用户页面上,我显示了帖子。

在主页上,我也有帖子正在显示。

我应该把共享/公共代码放在哪里,以便 users_controller 和 pages_controller 和 posts_controller 都可以访问这些方法?

现在,我在一些控制器中重复了 def 方法,并且在每个控制器中也有一些重复的私有方法。


在相关说明中,如何从另一个控制器访问一个控制器中定义的方法?

4

2 回答 2

1

也许是一个模块?

module ProductSharedMethods    
  def product_list
    Product.scoped
  end
end

class UsersController < ApplicationController
  include ProductSharedMethods

  def index
    @products = product_list
  end
end
于 2013-09-20T17:32:28.060 回答
0

如果您的帖子显示在两个单独的页面上,请使用部分。我不知道您使用的是什么版本的 rails,但较新的版本有一个用于共享部分的视图/应用程序文件夹。

如果您有一个在多个控制器之间共享的方法,则将其放入应用程序控制器中。控制器是类,因此请遵循所有常规规则。

希望有帮助。

于 2013-09-20T17:25:45.970 回答