根据复选框状态进行调节

时间:2014-03-13 03:56:34

标签: ruby-on-rails-4

当潜在用户正在编辑他们的个人资料时,他们可以选择在公共视图中显示/隐藏某些信息。我用

做到了
<div class="field">
    <%= f.text_field :contact %>
    <%= f.select(:contact_type_id, ContactType.all.map {|l| [l.name, l.id]}) %>
    <%= f.check_box :visible %>
    <%= f.label :visible, "Vidljivo" %>

    <%= f.link_to_remove "Izbriši kontakt" %>
</div>

在像这样的视图中调用的部分

<%= f.fields_for :contacts do |l| %>
    <%= render 'contacts_form', f: l %>
<% end %>

我现在想要的是在公共资料页面上仅显示用户标记为可见的信息,并且我通过不同的部分尝试了

<div class="field">
    <% if :visible == true %>
        <%= f.text_field :contact %>
    <% end %>
</div>

来自

<%= f.fields_for :contacts do |l| %>
    <%= render 'contacts_show', f: l %>
<% end %>

但它不起作用。我尝试了很多变化,但这一切都归结为猜测正确的语法。如何仅显示那些可见性标记为&#34; true&#34;?

的条目

2 个答案:

答案 0 :(得分:0)

为什么要将公开个人资料显示为表单?如果您只想显示信息,可以迭代联系人类型可见的用户的联系信息。

答案 1 :(得分:0)

我通过使用不同的方法解决了它。在我的用户控制器中,我定义了一个实例变量@visible,并将由可见参数设置为true的所有数据库条目组成的数组传递给它。然后我在视图中使用@ visible.each来打印所需的内容。