gpt4 book ai didi

ruby-on-rails - 当使用 first_or_create 检索对象时,在对象上创建评论时发出问题

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:32 25 4
gpt4 key购买 nike

提前致歉,rails 新手。

某楼主有N条评论,一条评论有1条楼主

问题:为什么我不创建评论? (返回一个 nil 对象)

在 landlands_controller#create 中:如果凭据已在数据库中,则创建房东或寻找房东:

@landlord = Landlord.where(:name => params[:landlord][:name],
:city => params[:landlord][:city], :province => params[:landlord][:province]).first_or_create!

当我调用 @landlord.comments[0].setIP request.remote_ip 之后

我收到错误 undefined method setIP for nil:NilClass

在地主 Controller 中提供new和create方法

def new
@landlord = Landlord.new
@landlord.comments.build
end

def create
#check if a landlord of the same name already exists and add comments to that db entry
@landlord = Landlord.where(:name => params[:landlord][:name], :city => params[:landlord][:city], :province => params[:landlord][:province]).first_or_create!
#:comment => params[:landlord][:comments_attributes]
@landlord.comments[0].setIP request.remote_ip

if @landlord.save

redirect_to landlords_path
else

end

结束

评论 Controller 是空的,我不确定这是否是一个问题。

最佳答案

 @landlord.comments.create if @landlord.comments.empty? #add this step
@landlord.comments[0].setIP request.remote_ip

这是由于您第一次创建时,即当不存在地主对象时,first_or_create!将创建无任何注释的 landload 对象。

关于ruby-on-rails - 当使用 first_or_create 检索对象时,在对象上创建评论时发出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263032/

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