我正在使用 Ruby on Rails v3.2.2,我想“保护”一个类/实例属性,以便只能以一种方式更新数据库表列值。也就是说,例如,假设我有两个数据库表:
table1
- full_name_column
table2
- name_column
- surname_column
我管理它,table1
以便full_name_column
通过使用相关table2
类/模型中声明的回调来更新,我想确保只能通过该回调来更新full_name_column
值。
换句话说,我应该确保该table2.full_name_column
值始终
"#{table1.name_column} #{table1.surname_column}"
并且它不能是另一个值。因此,例如,如果我尝试“直接”更新table1.full_name_column
,它应该会引发类似错误的内容。当然,该值必须是可读的。
可能吗?你对处理这种情况有什么建议?
这种方法的原因...
我想使用这种方法,因为我计划对包含与“profile”/“person”对象相关table1
的其他值的列执行数据库搜索table1
......否则,我可能必须进行一些黑客攻击(也许是一个复杂的黑客攻击)将这些搜索定向到table2
so 以查找"#{table1.name_column} #{table1.surname_column}"
字符串。
因此,我认为一种简单的方法是如上所述对数据进行非规范化,但它需要实现一种“不常见”的方式来处理该数据。
顺便说一句:答案应该旨在“解决”相关流程或找到更好的方法来以更好的方式处理搜索功能。