ruby-on-rails - Rails DB 中的 CamelCase 而不是 snake_case

标签 ruby-on-rails ruby jruby activerecord-jdbc

我的数据库表和字段名称采用 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 的列名称 keywordsmagic 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/

相关文章:

ruby-on-rails - 命名空间路由和模型路径 rails

python - 在 Ruby 中检查变量类型

python - 如果在 Ruby 和 Python 中都允许猴子修补,为什么在 Ruby 中争议更大?

ruby - 作为开发人员,不同的 Ruby 线程模型(Ruby 与 JRuby)对您的代码有什么实际影响?

JRuby - 停止脚本执行

mysql - 一个简单社交网站的数据库设计

ruby-on-rails - 什么是 Rack 端点?

jruby - 使用 JRuby 和 rbenv 指定 1.9 模式

ruby-on-rails - `rake paperclip:refresh class=Photo` 不再工作

ruby - Rack 应用程序 : can't activate rack, 已激活