Rails - 在使用 .present 将行添加到 table 之前尝试检查列是否为空?

Rails - Trying to check if a column is empty before adding rows into table using .present?

我有一个显示处方列表的 table。我想过滤掉没有 "ended" 日期的处方。我正在尝试使用礼物?但没有任何运气。

  <% if @prescriptions.where(:ended => present?) %>
  <% @prescriptions.each do |prescription| %>
      <tr>
        <td><i class="fa fa-medkit"></i> <%= prescription.drug.friendly_name %></td>
        <td><%= prescription.dosage %></td>
        <td><i class="fa fa-calendar"></i> <%= prescription.started %></td>
        <td><i class="fa fa-calendar"></i> <%= prescription.ended %></td>
      </tr>
  <% end %>
  <% end %>

如果您指出遇到的错误以及呈现此视图的控制器操作,将会有所帮助。

您可以使用 select 过滤掉没有结束日期的处方,但最好在您的模型中设置一个范围。假设您有处方模型:

def self.unexpired
  where.not(ended: nil)
end

控制器可以调用这个范围,例如

Prescription.unexpired