gpt4 book ai didi

ruby-on-rails-3 - .where 与 find。 ActiveRecord::关系 NoMethodError

转载 作者:行者123 更新时间:2023-12-03 00:43:38 25 4
gpt4 key购买 nike

我是 Rails 新手,这似乎很明显,但找不到答案。

当我这样做

u = User.where("email=?", email_string)
u.name = "new name"

我一直没用

NoMethodError: undefined method `name=' for #<ActiveRecord::Relation:0x1049c2890> 

但如果我改变

u = User.where("email=?", email_string)

u = User.find_by_email(email_string)

我可以看到我的更改被保留并且没有抛出错误。

那么我错过了什么。 .where 返回只读对象还是其他东西?

最佳答案

.where 实际上是一个范围,并且确实返回一组用户而不是单个用户。您可以通过以下方式获取第一个匹配的用户(如 .find_by_email 所做的那样)

User.where('email = ?', email_string).first

此外,您可以使用以下方式返回集合

User.find_all_by_email(email_string)

我希望这会有所帮助。

关于ruby-on-rails-3 - .where 与 find。 ActiveRecord::关系 NoMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7442791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com