Ruby on rails Rails-检查活动记录是否为空,然后对其调用关系

Ruby on rails Rails-检查活动记录是否为空,然后对其调用关系,ruby-on-rails,Ruby On Rails,我使用以下语句从数据库中获取数据 @applications = Job.find(params[:job_id]).job_applications 使用我设置的关系,如果我这样做 @applications.first.job 这将给我的工作,申请与 在视图中,我有以下代码,如果@applications为空,则此操作将失败 <% if !@applications.first.job.procedure %> <div class="alert alert

我使用以下语句从数据库中获取数据

@applications = Job.find(params[:job_id]).job_applications
使用我设置的关系,如果我这样做

@applications.first.job
这将给我的工作,申请与

在视图中,我有以下代码,如果
@applications
为空,则此操作将失败

  <% if !@applications.first.job.procedure %>
    <div class="alert alert-warning">
      <p>No procedure has been assigned to this job.</p>
    </div>
  <% end %>

尚未为此作业分配任何程序


如何更新上述if语句,使其仅在
@applications
不为空时运行

您可以检查关联是否存在

<% if @applications.blank? || @applications.first.job.try(:procedure).blank? %>
  <div class="alert alert-warning">
    <p>No procedure has been assigned to this job.</p>
  </div>
<% end %>

您可以检查关联是否存在

<% if @applications.blank? || @applications.first.job.try(:procedure).blank? %>
  <div class="alert alert-warning">
    <p>No procedure has been assigned to this job.</p>
  </div>
<% end %>

非常感谢,我正在寻找一个单行程序,而不是添加两个if语句。请记住try的性能不太好,特别是当它被用来链接关联而不仅仅是对象上的方法时。看到这个问题Ahaa..thanx的洞察力…惊讶地发现它几乎是3倍。非常感谢,我在寻找一个一行而不是添加两个if语句请记住try的性能不太好,特别是当它被用来链接关联而不仅仅是对象上的方法时。看到这个问题啊哈..坦克斯的洞察力…惊讶地发现这几乎是3倍。