我的代码开始有重复....因为我不知道在哪里放置需要由(2)不同的控制器访问的方法/函数,只是为了快速得到它我只是重复它。
所以我有一个users_controller,一个pages_controller和posts_controller。
在用户页面上,我显示了帖子。
在主页上,我也有帖子显示。
我应该在哪里放置共享/公共代码,以便users_controller和pages_controller以及posts_controller都可以访问这些方法?
现在,我在某些控制器中有重复的def方法,并且每个控制器中也有一些重复的私有方法。
在相关说明中,如何从另一个控制器访问一个控制器中定义的方法?
答案 0 :(得分:1)
也许是一个模块?
module ProductSharedMethods
def product_list
Product.scoped
end
end
class UsersController < ApplicationController
include ProductSharedMethods
def index
@products = product_list
end
end
答案 1 :(得分:0)
如果您在两个单独的页面上显示帖子,则使用部分。我不知道您使用的是哪个版本的rails,但是较新的版本具有共享部分的视图/应用程序文件夹。
如果您有一个跨多个控制器共享的方法,则将其放入应用程序控制器中。控制器是类,因此遵循所有常规规则。
希望有所帮助。