Ruby on rails Rails版本迁移问题(Rails 4.2到5.0)
从railsRuby on rails Rails版本迁移问题(Rails 4.2到5.0),ruby-on-rails,rails-activerecord,ruby-on-rails-5,Ruby On Rails,Rails Activerecord,Ruby On Rails 5,从rails4.2.6迁移到5.0.1时,我遇到了一些错误: undefined method `push' for #<User::ActiveRecord_Relation: 这里需要注意的一点是@users是ActiveRecord关系。对于ActiveRecord关系,没有这样的方法push push方法受Array支持,因此您可以将结果转换为数组,然后在结果“Arraya”中推送新用户 @users = User.includes(:account).order(:last_n
4.2.6
迁移到5.0.1
时,我遇到了一些错误:
undefined method `push' for #<User::ActiveRecord_Relation:
这里需要注意的一点是
@users
是ActiveRecord
关系。对于ActiveRecord
关系,没有这样的方法push
push
方法受Array
支持,因此您可以将结果转换为数组,然后在结果“Arraya”中推送新用户
@users = User.includes(:account).order(:last_name)
@users.to_a.push(new_user)
ActiveRecord::Associations::AssociationCollection#push
来自ActiveRecord 5
。在按下之前,您可以尝试将关系转换为数组:
@users = User.includes(:account).order(:last_name).to_a
@users.push(new_user)
或者在ActiveRecord 5中找到类似的方法。例如:
这是针对#
的未定义方法push'的完全错误吗?#我相信后面一定有一个类名。这是完整的一行:未定义的方法'push'for#你试过Deepak的答案吗?这应该对你有用。是的,push方法已经被弃用了,但是如果你能告诉其他方法来代替它,那就太好了。而且还提到concat和push的工作原理是相同的。但是concat不起作用。得到了同样的错误。@Deepak Mahakale-谢谢你的回答@users.to_a.push…
帮助了我。我也遇到了同样的问题,并试图将添加到我的新记录中。
@users = User.includes(:account).order(:last_name).to_a
@users.push(new_user)
@users = User.includes(:account).order(:last_name)
@users.concat([new_user])