Rails拒绝在名为`authorization`的列中存储值

时间:2013-04-21 21:50:34

标签: ruby-on-rails ruby model

我现在花了几个小时将字符串存储在Rails的数据库列中。

我必须将authorization重命名为transaction,以便Rails存储该值。

为什么Rails在保存值时会产生干扰?

示例:

# Works
self.update_attribute(:transaction, result) rescue nil

# Does not work
self.update_attribute(:authorization, result) rescue nil

3 个答案:

答案 0 :(得分:2)

您的基础数据库是什么? 可能将“授权”作为保留字。

查看生成的sql并直接将其运行到db。如果它运行没有问题,那么我的假设是无效的。

答案 1 :(得分:1)

mySQL和SQLserver都使用授权作为保留字。

所以你只需要使用不同的词。

你也可以使用像'authorized'或'auth'这样的东西。

答案 2 :(得分:0)

也许尝试使用表名为列添加前缀?例如:

UPDATE my_table
SET my_table.authorization = "new authorization"
WHERE id = 5