gpt4 book ai didi

ruby-on-rails-3 - ActiveRecord::Relation 的未定义方法

转载 作者:行者123 更新时间:2023-12-03 11:34:36 26 4
gpt4 key购买 nike

用户模型

class User < ActiveRecord::Base
has_many :medicalhistory
end

医学史模型
class Medicalhistory < ActiveRecord::Base
belongs_to :user #foreign key -> user_id
accepts_nested_attributes_for :user
end

错误
undefined method `lastname' for #<ActiveRecord::Relation:0xb6ad89d0>


#this works
@medicalhistory = Medicalhistory.find(current_user.id)
print "\n" + @medicalhistory.lastname

#this doesn't!
@medicalhistory = Medicalhistory.where("user_id = ?", current_user.id)
print "\n" + @medicalhistory.lastname #error on this line

最佳答案

好吧,您正在取回 ActiveRecord::Relation 的对象,不是您的模型实例,因此错误,因为没有名为 lastname 的方法在 ActiveRecord::Relation .

@medicalhistory.first.lastname有效是因为 @medicalhistory.first正在返回 where 找到的模型的第一个实例.

另外,您可以打印出@medicalhistory.class对于工作和“错误”代码,看看它们有什么不同。

关于ruby-on-rails-3 - ActiveRecord::Relation 的未定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6004891/

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