Rails 6 在现有 SQL 数据库上设计 gem,列名大写

Rails 6 devise gem on existing SQL db with capitalized colum name

我正在尝试在 RoR 中进行一些测试(ruby v2.6.8,rails v6.1.5): 我想基于现有用户 table 的现有数据库创建一个设计(称为帐户,大写 A)。我设法执行了迁移 Devise 所需的列的第一步,但是当我尝试注册时卡住了:

undefined method `email' for #<Account:0x0000000110cb34f8>


   Did you mean?  Email
                  Email=
                  Email?

Extracted source (around line #469):

   else
       match = matched_attribute_method(method.to_s)
       match ? attribute_missing(match, *args, &block) : super
     end
   end
   ruby2_keywords(:method_missing) if respond_to?(:ruby2_keywords, true)

关于如何处理这个问题和未来可能出现的问题,有什么一般性的建议吗? 非常感谢

最简单的方法就是做一个 alias_attribute.

这会将 :email:email= 委托给 :Email:Email=

class Account
  alias_attribute :email, :Email
end