首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails属性名称camelcase问题

rails属性名称camelcase问题
EN

Stack Overflow用户
提问于 2016-04-26 16:22:03
回答 2查看 1.3K关注 0票数 3

我有遗留的Sql Server数据库和Rails应用程序。数据库中的列名都在PascalCase (FirstName, CustomerId...).

我正在寻找一种在Ruby中使用underscore_casing和在数据库中使用PascalCasing的简单方法。我想写在Rails的FirstName列在数据库中的first_name

驼峰化和下划线将字符串转换为所需的大小写

但是我正在寻找更通用的东西,比如:ActiveRecord::Base.camelize_table_column_names = true

类似于现有的ActiveRecord::Base.pluralize_table_names

就像将rjs模板中的Ruby转换为JavaScript cameCase约定一样。

EN

回答 2

Stack Overflow用户

发布于 2016-04-26 17:04:36

也许可以为所有已定义的列名设置别名?

代码语言:javascript
复制
column_names.each do |column_name|
  alias_attribute column_name.underscore, column_name
end

您可以将其添加到一个关注点中,并将该关注点包含在所有相关模型中。

票数 3
EN

Stack Overflow用户

发布于 2016-04-26 16:59:28

我不认为有一个单一的选项可以打开这样的行为。毕竟,Rails遵循convention over configuration原则,但并不是所有的内部约定都是可配置的。

另一方面,您应该能够为所有列定义 ,例如:

代码语言:javascript
复制
class Customer < ActiveRecord::Base
   alias_attribute :first_name, :FirstName
   # etc...
end

这样,Rails应该透明地将下划线属性“转换”为CamelCase属性:

代码语言:javascript
复制
Customer.where(first_name: "John")
# => SELECT `customers`.* FROM `customers` WHERE `customers`.`FirstName` = 'John'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36859240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档