我只是环顾 rails 并注意到有一个应用程序 Controller 但没有应用程序模型。
rails 中没有根模型吗?如果不是,你把一段需要在每个模型中的代码放在哪里。
谢谢,亚历克斯
最佳答案
没有说你的 Controller 必须子类化 ApplicationController
但它通常是标准,因为绝大多数 Rails 应用程序都使用 layout
功能(每个 Controller 可能会有所不同),因此与其强制没有布局的罕见功能关闭每个 Controller 的布局( layout nil
或 layout false
),不如制作一个“抽象”的,您可以将 Controller 功能轻松开启和关闭您的整个应用程序。
现在对于模型,您可以创建一个 ApplicationModel
对于您所有的模型进行子类化,但有两件事需要考虑:
ActiveRecord::Base
并使用它来打开 STI(单表继承)。 ApplicationModel
将是一个实际模型,预计在您的数据库中有一个表。这可能会导致问题。 要解决这两个问题,您必须设置
abstract_class
为 true 以便 ActiveRecord 正常运行。class ApplicationModel < ActiveRecord::Base
self.abstract_class = true
end
与抽象的 ActionController 相比,
abstract_class
必须设置为 true,这意味着开发人员必须知道他们不能从 ApplicationModel
中删除此行.与 ApplicationController
你几乎可以为所欲为。
关于ruby-on-rails - rails - 根模型或应用程序模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3329639/