在“显示视图”中显示复选框而不是“真”或“假”值

时间:2015-08-13 03:52:47

标签: ruby ruby-on-rails-4

我正在为我工​​作的安全公司创建一个应用程序。我有一些布尔值很重的表单,并且有大量的复选框,用户可以选择各种事件类型/描述等。< / p>

目前我在_form页面中应用的复选框如下:

<td><center><div class="control-group"><div class="controls"><%= f.check_box :on_site_owner %></div></div></center></td> 

我的节目页面上的显示如下:

<td><center><div class="control-group"><div class="controls"><%= @resident_owner.on_site_owner %></div></div></center></td>

我希望完成的是两件事之一。并且要么将工作得很好我只是不知道如何实现它...并且无法找到它的方向。

1)在显示页面上填充一个列表,只显示选中的或#34; true&#34;框。

2)仅在展示页面上显示真实值而不是真值和假值。

我真的更喜欢选项一,以便于阅读,因此查看它的客户端不会进入真/假超载。

非常感谢任何帮助。提前致谢。

2 个答案:

答案 0 :(得分:2)

要在展示页面中使用复选框,您可以使用check_box_tag辅助方法。文档here。例如:

<td>
 <center>
   <div class="control-group">
     <div class="controls">
       <%= check_box_tag "On Site Owner, @resident_owner.on_site_owner,  @resident_owner.on_site_owner,disabled: true %>
    </div>
  </div>
 </center>
</td>

但是为了更好的UI设计,我会创建一个帮助器来生成检查(勾选图标)或取消选中给定值的图标并在erb中使用它。例如:

module ApplicationHelper

  def show_check_icon(boolean_value)
    if boolean_value then 
      "<i class='fa-li fa fa-check-square'></i>"
    else 
      "<i class='fa-li fa fa-square'></i>"
    end 
  end

end

希望有所帮助。

答案 1 :(得分:0)

我使用了与@dreamingblackcat 类似的字体,并将其更改为字体很棒:

 def show_check_icon(boolean_value)
    if boolean_value
      %{<i class='fas fa-check'></i>}.html_safe
    else
      %{<i class='fas fa-times'></i>}.html_safe

    end