ruby-on-rails – Rails 3 – 如何组织/拆分膨胀的控制器?
发布时间:2020-12-17 02:11:09 所属栏目:百科 来源:网络整理
导读:我一直在研究CMS应用程序,以提高我的技能,控制器变得非常臃肿的定义.我知道可以在lib / whatever.rb中存储东西,然后使用require和include,但这对控制器来说并不是很有用 – 至少在我的情况下,我有before_filters. 没有控制器中的定义,before_filters拒绝工作
我一直在研究CMS应用程序,以提高我的技能,控制器变得非常臃肿的定义.我知道可以在lib / whatever.rb中存储东西,然后使用require和include,但这对控制器来说并不是很有用 – 至少在我的情况下,我有before_filters.
没有控制器中的定义,before_filters拒绝工作. 是否所有的defs都必须进入控制器或者是否有办法将它们取出? (它们特定于该控制器,因此无法进入应用程序控制器. 解决方法
您可以使用mixin模块执行许多操作,这些模块将向现有控制器添加行为,或者您可以尝试创建一个类层次结构,以允许控制器从其父类继承所需的方法.
在大多数应用程序中,我至少将ApplicationController子类化一次,以便在某些上下文中强制执行某些标准.例如,与Project相关的所有控制器都将继承自ProjectController :: Base: class ProjectController::Base < ApplicationController before_filter :must_be_logged_in before_filter :load_project protected def load_project @project = Project.find(params[:project_id] || params[:id]) rescue ActiveRecord::RecordNotFound render(:template => 'not_found') end def must_be_logged_in # ... end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |