我怎么说如果值存在显示值,否则用 simple_form 就够了?

How do I say if value exists display value otherwise leave well enough alone with simple_form?

我正在使用 simple_form,我只希望 value: @image.start_at.strftime("%m/%d/%Y %I:%M %p") %> 在 @image.start_at 有值时执行。

<div class="input-group date" id="datetimepicker">
    <%= f.text_field :start_at, class: 'form-control', value: @image.start_at.strftime("%m/%d/%Y %I:%M %p") %>
    <span class="input-group-addon">
      <span class="glyphicon glyphicon-calendar"></span>
    </span>
</div>

例如,这是来自我的图像 create/update _form,如果我已经有一个具有 start_at 值的图像,这看起来完全符合我的要求。但是,当我创建一个新图像并且没有 start_at 值时,我怎么能说不要尝试将这个值放入输入中呢?我对默认值不感兴趣。

你能做这样的事情吗?

<div class="input-group date" id="datetimepicker">
    <%= f.text_field :start_at, class: 'form-control', value: @image.start_at.strftime("%m/%d/%Y %I:%M %p") if @image.start_at.present? %>
    <span class="input-group-addon">
      <span class="glyphicon glyphicon-calendar"></span>
    </span>
</div>

将 if 语句与值

内联

检查空白并适当赋值:

<%  @image.start_at.blank? ? starts_at = nil : starts_at = @image.start_at.strftime("%m/%d/%Y %I:%M %p")  %>
<div class="input-group date" id="datetimepicker">
    <%= f.text_field :start_at, class: 'form-control', value: starts_at %>
    <span class="input-group-addon">
      <span class="glyphicon glyphicon-calendar"></span>
    </span>
</div>

你可以这样做:

使用 unless 语句

<%= f.text_field :start_at, class: 'form-control', value: @image.start_at.strftime("%m/%d/%Y %I:%M %p") unless @image.start_at.nil? %>

使用 if 语句

<%= f.text_field :start_at, class: 'form-control', value: @image.start_at.strftime("%m/%d/%Y %I:%M %p") if @image.start_at.present? %>

使用 if / else 语句

<%= f.text_field :start_at, class: 'form-control', value: @image.start_at.nil? ? @image.start_at.strftime("%m/%d/%Y %I:%M %p") : 'no value'  %>
<%= f.text_field :start_at, class: 'form-control', value: @image.start_at? ? @image.start_at.strftime("%m/%d/%Y %I:%M %p") : nil %>

基于@luissimo 的回答