0

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

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

为什么 Rails 在保存值的同时会干扰?

例子:

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

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

3 回答 3

2

你的底层数据库是什么?它可能具有“授权”作为保留字。

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

于 2013-04-21T21:56:52.243 回答
1

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

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

您也可以使用类似“授权”或“身份验证”的内容。

于 2013-04-21T22:07:41.427 回答
0

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

UPDATE my_table
SET my_table.authorization = "new authorization"
WHERE id = 5
于 2013-04-21T23:33:39.030 回答