在Rails DB中使用CamelCase而不是snake_case

ark*_*diy 5 ruby ruby-on-rails jruby activerecord-jdbc

我的数据库表和字段名称在CamelCase中.是否可以将这些名称转换为snake_case?使模型方法看起来漂亮吗?

该应用程序是JRubyOnRails 3.0/MSSQL DB/ActiveRecord-JDBC-adapter.

bur*_*mon 5

@ arkadiy,事实上,我正在调查这一天.

对于表名,我们当然有这样的set_table_name方法:

class CamelCasedFoo < ActiveRecord::Base
  set_table_name :CamelCasedTable
end
Run Code Online (Sandbox Code Playgroud)

对于像主键这样的东西,我们有set_primary_key:

class CamelCasedBar < ActiveRecord::Base
  ...
  set_primary_key "CamelCasedTableID"
end
Run Code Online (Sandbox Code Playgroud)

并且应该可以将时髦的旧列名称替换为更友好的以下内容alias_attribute:

class CamelCasedBaz < ActiveRecord::Base
  ...
  alias_attribute :preferred_delivery, :DeliveryFrequency
end
Run Code Online (Sandbox Code Playgroud)

要记住的一件重要事情是要注意任何ruby或rails 关键字魔术字段名称的列名.

Rails似乎具有所有元编程优点,允许您处理遗留的db表名和列.您可能希望阅读Jonathan Hui关于"Ruby on Rails 3模型使用旧数据库"的博客文章.你可能想看一下safe_attributes gem.