Rails - 检查活动记录是否为空,然后在其上调用关系

时间:2017-07-10 09:22:30

标签: ruby-on-rails

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

@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不为空时

运行

1 个答案:

答案 0 :(得分:1)

你可以检查是否存在关联..

<% 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 %>

或者一个班轮,虽然有点难看

@applications.try(:first).try(:job).try(:procedure).blank?