我开始开发一个新的 Ruby on Rails 应用程序,它是配置文件中包含的某些属性的 CRUD 接口(interface)。该过程将类似于:CRUD RoR App > 数据库 > 导出到配置文件。
我的问题是设计这个的最佳方法是什么(从数据库导出到配置文件的后端部分)。假设配置文件与 RoR 应用程序位于同一服务器上,我是否只需编写单独的类(在/lib 中),这些类具有读取/写入配置文件的方法,并在模型中的 before_create 过滤器中包含/调用它们?/p>
最佳答案
创建一个在用户输入提示时进行 self 修改的应用程序是一个非常糟糕的主意。它破坏了版本控制的好处,并且导致了许多令人困惑的错误。
如果您需要一些无法在源中修改的用户可配置设置,请考虑构建一个设置/配置模型,将键/值存储在数据库中并大量缓存它们。
要记住的另一件事是 Ruby 类定义的执行方式与常规代码一样。例如,您可以执行以下操作:
class Foo
if RUBY_VERSION == '1.9.2'
def self.bar
# do something 1.9.2 style
end
else
def self.bar
# do something 1.8.7 style
end
end
此示例显示了更常见的 Ruby 版本切换,但如果执行类定义时应用程序可以访问配置值,您可以根据配置值执行相同的操作。如果您加载
您在其中执行此操作的类,如果/当配置值发生更改以获得此好处时,您始终可以再次加载
它。
本质上,这将允许您进行一项设置,例如,允许您的用户要求使用您未在代码库中解决的特定验证器来验证特定模型,前提是您的模型检查此类配置并定义验证器,就像我所说的那样。
有道理吗?
关于ruby-on-rails - Ruby on Rails 项目的设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240287/