我的数据库表和字段名称采用 CamelCase。是否可以即时将这些名称转换为 snake_case?使模型方法看起来漂亮?
该应用程序是 JRubyOnRails 3.0/MSSQL DB/ActiveRecord-JDBC-adapter。
最佳答案
@arkadiy,事实上,就在今天,我正在研究这个问题。
对于表名,我们当然有 set_table_name
方法:
class CamelCasedFoo < ActiveRecord::Base
set_table_name :CamelCasedTable
end
对于主键之类的东西,我们有 set_primary_key
:
class CamelCasedBar < ActiveRecord::Base
...
set_primary_key "CamelCasedTableID"
end
并且应该可以使用 alias_attribute
将时髦的、遗留的列名称别名化为对 rails 更友好的名称。 :
class CamelCasedBaz < ActiveRecord::Base
...
alias_attribute :preferred_delivery, :DeliveryFrequency
end
要牢记的一件关键事情是注意任何 ruby 或 rails 的列名称 keywords或 magic field names .
Rails 似乎拥有所有元编程优点,可让您处理遗留数据库表名和列。您可能希望阅读 Jonathan Hui 在 "Ruby on Rails 3 Model Working with Legacy Database" 上发表的博文。 .你可能想看看 safe_attributes gem 。
关于ruby-on-rails - Rails DB 中的 CamelCase 而不是 snake_case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5975081/