ruby-on-rails - Ruby on Rails 项目的设计问题

标签 ruby-on-rails ruby class web-applications

我开始开发一个新的 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/

相关文章:

c++ - 返回类型对象方法

ruby-on-rails - 尝试更新数据库值时,rails update_attributes 返回 false

ruby-on-rails - Rails 和 Authlogic。显示当前登录的用户

ruby-on-rails - 了解 Ruby on Rails 中的类变量和方法

ruby - 在 ubuntu 中单独安装 Ruby 1.9.2 的问题

ruby-on-rails - Carrierwave裁剪特定版本

ruby-on-rails - 邮箱:无法销毁对象

ruby-on-rails - Ubuntu 上的 Ruby on Rails - 多个错误

r - R函数的最后一行阻止绘图

Python:嵌套类而不使导入复杂化