Rails 3:更新数据库数据

时间:2012-10-20 15:23:06

标签: database ruby-on-rails-3

我正在尝试按照here的说明操作。最后一步是使用以下代码行更新我的数据库数据:

UPDATE rs_reputation_messages SET sender_type = 'ReputationSystem::Evaluation' WHERE sender_type = 'RSEvaluation'

我无法弄清楚这段代码的放置位置。通常,我会使用迁移更新数据库,但这看起来像是一个MySQL命令。我确信这个问题有一个非常非常简单的答案,但是尽管淘到谷歌,我甚至无法弄清楚如何正确地表达这个问题。

1 个答案:

答案 0 :(得分:2)

在这种情况下创建迁移文件总是更好。您可以使用update_all方法

RsReputationMessages.update_all("sender_type = 'ReputationSystem::Evaluation'", 
                                "sender_type = 'RSEvaluation'")

OR

ActiveRecord::Base.connection.execute("UPDATE rs_reputation_messages 
                                       SET sender_type = 'ReputationSystem::Evaluation' 
                                       WHERE sender_type = 'RSEvaluation'")