ruby-on-rails - 调用 update_attributes 时未定义方法 `stringify_keys'?

标签 ruby-on-rails

我收到此错误:未定义方法 `stringify_keys' for :environ_gross_score:Symbol 当我尝试创建新评级时。

  class Rating < ActiveRecord::Base
  belongs_to :city


  after_save :calculate_rating


 def calculate_rating
     @env  =   self.environ

     self.city.environ_vote_count += 1                                  
     @c = self.city.environ_gross_score
     @gross = @c += @env
     self.city.update_attributes(:environ_gross_score, @gross )
     @hold = self.city.environ_gross_score / self.city.environ_vote_count 
     self.city.update_attributes(:environ_rating, @hold)
end

end

最佳答案

update_attributes 采用单个散列,而不是 2 个参数。将行更改为:

 self.city.update_attributes(:environ_gross_score => @gross)

错误的发生是因为该方法假定传递的第一个参数是一个散列,它(在 Rails 中)响应 stringify_keys

关于ruby-on-rails - 调用 update_attributes 时未定义方法 `stringify_keys'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7542774/

相关文章:

javascript - Rails 5 : JQuery inside $(document). 就绪不会从一个页面触发到另一个页面,仅在重新加载时触发

ruby-on-rails - has_many在Rails中进行关联迁移

jquery - Rails 4 - 通过 Ajax 进行错误处理 - 错误未触发

mysql - Rails 切换数据库

ruby-on-rails - 如何开始启动 "rvmsudo rails server"命令

ruby-on-rails - 我如何在 ubuntu 17.04 上安装 rmagick

ruby-on-rails - 手动更改设计密码

ruby-on-rails - 错误 迁移正在挂起;运行 'rake db:migrate RAILS_ENV=development' 来解决这个问题

ruby-on-rails - 输入数组在 Rails 参数中转换为散列

jquery - 为什么 jQuery 无法在我的 Rails 5 应用程序中运行?