我有一个应用程序,我想在其中将所有数据库验证规则存储在数据库中,因为管理员需要能够从 GUI 更改验证规则。此外,规则预计会经常更改,因此我的要求是规则需要在数据库中。
为简单起见,假设我有一个用户模型,“名称”需要存在的验证规则。通常,你会说:
class User < ActiveRecord::Base
validates :name, presence: true
end
有什么方法可以将此规则粘贴到规则表中,查询数据库中的规则,然后让模型根据规则表中的规则进行验证?即像这样在模型文件中编写查询的简单方法?
class User < ActiveRecord::Base
Rule.first.validation
end
Rule.first.validation 的值为“validates :name, presence: true”。
谢谢。
最佳答案
这是可能的(比如使用 validates
和 eval
),但非常有限且有风险。另外,您正在将验证从可测试和部署为工作的地方转移到数据库,在那里它受制于您的系统管理员的突发奇想。我强烈建议不要以这种方式违背惯例。从长远来看,您最好频繁推出更新(并进行相应的测试)。
关于ruby-on-rails - 在数据库中实现 Ruby on Rails 验证规则而不是在模型文件中进行硬编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15867834/