ruby-on-rails - 从父 Controller 继承还是使用问题?

标签 ruby-on-rails ruby code-organization

我有五个共享通用代码的 Controller 。最好让它们从父 Controller 继承,还是使用关注点?例如:

class PostsController < ApplicationController
  before_action :authenticate, :set_project
  layout 'projects'
end

class CommentsController < ApplicationController
  before_action :authenticate, :set_project
  layout 'projects'
end

# three other controllers, etc...

我可以让 Controller 继承自一个声明了 before_actionslayout 的 Controller ,或者我可以将通用代码塞入一个关注点。

选择一个或另一个的标准是什么?有定义吗?

最佳答案

我的经验法则是:

如果 Controller 在 URL 中共享相同的命名空间(例如 /projects/.../admin/...),那么我使用继承自Projects::BaseControllerAdmin::BaseController

如果他们只是共享方法或声明而不共享命名空间,那么我会使用 mixins。

有时我更喜欢重复的代码。因为就地代码比名称无意义的混入更容易理解。对于涵盖身份验证布局的问题,您是否有一个好名字?

关于ruby-on-rails - 从父 Controller 继承还是使用问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19230020/

相关文章:

ruby-on-rails - 设计未确认时登录成功

javascript - 当 URL 包含加载时的特定参数时,如何调用此 javascript?

java - 可以将我的公共(public)接口(interface)放入他们自己的包中

java - 用于折叠/展开方法的 NetBeans 快捷键

html - CSS 将代码分成几部分

ruby-on-rails - Ruby on Rails 教程 : RSpec test failing when refactoring with matcher

ruby-on-rails - 如何从响应中删除一些 header

ruby-on-rails - Rails file_field 未上传图像

ruby - 如何在一个语句中从一组类对象构建散列

ruby - 如何在 Ruby 中打印行号