Ben*_*ess 9 ruby mysql activerecord ruby-on-rails ruby-on-rails-4.1
我的MySQL数据库中有一个列为TINYINT(1)的列.我需要在这个列中存储实际的整数.问题是,由于列类型,Rails 4.1假定此列仅包含布尔值,因此它在写入数据库时将除0或1之外的所有值都转换为0.
我不想简单地禁用布尔仿真,因为我们的数据库中有许多列,我们使用TINYINT(1)来实际表示一个布尔值.我目前无法更改MySQL中的列类型.
如何强制Rails 4.1绕过类型转换步骤并直接写入数据库呢?
(这个来自Rails 4.1源代码的摘录可能有一些用处:https://github.com/rails/rails/blob/4-1-stable/activerecord/lib/active_record/attribute_methods/write.rb)
你能使用原始 SQL 来执行插入吗?
就像是:
sql = "INSERT INTO my_table (smallnumber) VALUES (100)"
ActiveRecord::Base.connection.execute(sql)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |