首页 > 解决方案 > 获取值形式,如果为空,则将该字段留空以供输入

问题描述

嗨,我已经自动化了我的字段,但是如果要检索的值为 null,它会为 nil 设置错误未定义方法:NilClass 我如何在视图中通过获取值解决此问题

控制器

   def show
   

     @ref_entraineur = CarriereDocumentFootballeur.where(id: params[:id])

  end

在视图中

<%= f.text_field :num_entraineur , label: "Numéro Entraineur " , value: @ref_entraineur.last.num_entraineur    %>

标签: ruby-on-rails

解决方案


由于@ref_entraineur可以为 nil,因此您不能直接在其上调用last.num_entraineur,因为如果 @ref_entraineur 为 nil,它将不会响应这些字段/方法。因此,为了更安全,您应该在表单/视图中使用“安全导航运算符”(&),如下所示:

value: @ref_entraineur&.last&.num_entraineur

这样,如果@ref_entraineur为 nil(未找到记录),您的f.text_field :num_entraineur的值将是 nil/空字符串,并且不会引发运行时错误。


推荐阅读