Rails option_for_select related–是否有一种方法可以记住值(如果存在),并在值为空时包含空



这就是我现在正在使用的。有没有办法把它擦干??重复的代码,更不用说我需要的功能是直截了当和简单的:如果值存在,则显示值,如果值不存在,则为空。我可以在末尾插入一个if或除非语句吗?如果存在,该语句将显示值(并删除整个代码块)??

<div class="field">
  <% if @user.nation.present? %><br/>
    <%= f.label :nation %><br />
    <%= f.select :nation, options_for_select(%w[
      Canada
      England
      Caribbean
    ], @user.nation) %><br/>
  <% else %><br/>
    <%= f.label :nation %><br />
    <%= f.select :nation, options_for_select(%w[
    Canada
    England
    Caribbean
    ]), { :include_blank => 'Where Do You Live?' } %><br/>
  <% end %>
</div>

考虑到你的问题(你住在哪里),我认为你不想要一个空白值,所以你可以使用提示:

<%= f.select :nation, options_for_select(%w[
      Canada
      England
      Caribbean
    ], @user.nation), prompt: 'Where Do You Live' %>

如果没有,那么您应该能够使用三元运算符来执行If内联,而不是重复一大块代码。

<%= f.select :nation, options_for_select(%w[
    Canada
    England
    Caribbean
    ]), { :include_blank => (@user.nation.present? ? false : 'Where Do You Live?' ) } %>

相关内容

最新更新