ruby-on-rails - rails : two controllers for the same model

标签 ruby-on-rails ruby model-view-controller

我有一个模型 User 和一个相应的 UsersController。由于项目发生变化,CentersController 中需要为用户模型提供相同的、精确的功能,当然,仅具有针对中心的附加功能。 UsersController 保持原样。

设计问题是如何使用 UsersController 方法(更新、编辑、创建等)而不在 CentersController 中复制它们?例如,当用户在中心 View 中更新时,将调用用户 Controller 的更新操作,但查看器应重定向回中心 View 。

最佳答案

这就是模块或“mixin”的用途。您将常用方法放入一个模块中,并将该模块包含到 UsersControllerCentersController 中。

module Foo
  def bar
  end
end

class UsersController < ApplicationController
  include Foo
end

class CentersController < ApplicationController
  include Foo
end

或者,将通用代码放入 Controller 中,并从该 Controller 继承:

class FooController < ApplicationController
  def bar
  end
end

class UsersController < FooController
end

class CentersController < FooController
end

关于ruby-on-rails - rails : two controllers for the same model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12163768/

相关文章:

ruby-on-rails - Rails 应用程序的 SaaS 计费 : Chargify, PayPal 或...?

ruby-on-rails - 如何在Ruby on Rails中作为附件接收/上传模型中的音频文件?

model-view-controller - Beego - 创建模型表单和 ORM

c# - 在 1 个 View 中添加 2 个 IEnumerable 模型

ruby-on-rails - Rails 4 - 无论请求的格式如何,如何呈现 JSON?

jquery - 如何在 ruby​​ on rails 中发出 ajax 请求?

ruby-on-rails - 使用 rails 回形针插件将图像存储在数据库中

ruby-on-rails - 您已经激活了 rspec-support 3.0.0.beta1,但是您的 Gemfile 需要 rspec-support 3.0.0.beta1

ruby-on-rails - Ruby on rails 测试 - 表 X 没有名为 Y 的列

c# - 以用户别名发送消息