Ruby on rails 从视图中隐藏数据库中的信息。-轨道
我现在有一个表,它显示了用户的一系列属性。这是我的问题。每个人都有能力加入一个小组,但在某些情况下,一个人可以在没有加入小组的情况下进入表格。为了让阅读该表的用户更清楚,我只想从表中隐藏未注册组的每个人。这比我预想的要复杂一些。为了更好地理解,我将展示一些代码和屏幕截图 正如您所看到的,若一个人并没有组,则不会显示在表中 我正在尝试创建一个方法,并在呈现表的控制器上调用它。人和群体是两种不同的模式,与HABTM有关联。我如何在ruby中说“若人员并没有组,则不显示在表中” 这是制作桌子的控制器Ruby on rails 从视图中隐藏数据库中的信息。-轨道,ruby-on-rails,ruby,Ruby On Rails,Ruby,我现在有一个表,它显示了用户的一系列属性。这是我的问题。每个人都有能力加入一个小组,但在某些情况下,一个人可以在没有加入小组的情况下进入表格。为了让阅读该表的用户更清楚,我只想从表中隐藏未注册组的每个人。这比我预想的要复杂一些。为了更好地理解,我将展示一些代码和屏幕截图 正如您所看到的,若一个人并没有组,则不会显示在表中 我正在尝试创建一个方法,并在呈现表的控制器上调用它。人和群体是两种不同的模式,与HABTM有关联。我如何在ruby中说“若人员并没有组,则不显示在表中” 这是制作桌子的控制器
<table class="table table-striped">
<thead>
<tr>
<th><%= sortable 'phone_number', 'Phone Number'%></th>
<th><%= sortable 'subscribed', 'Subscribed'%></th>
<th><%= sortable 'city' %></th>
<th><%= sortable 'state' %></th>
<th><%= sortable 'zip' %></th>
<th><%= sortable 'country' %></th>
<th><%= sortable 'created_at', "Joined" %></th>
<th>Groups</th>
</tr>
</thead>
<tbody>
<% @people.each do |person| %>
<tr>
<td><%= person.phone_number %></td>
<td><%= person.subscribed? ? "Yes" : "No" %></td>
<td><%= person.city %></td>
<td><%= person.state %></td>
<td><%= person.zip %></td>
<td><%= person.country %></td>
<td><%= time_ago_in_words person.created_at %> ago</td>
<td><%= person.groups.order(:id).pluck(:name).to_sentence %></td>
</tr>
<% end %>
</tbody>
组
以前
群模型
class Group < ActiveRecord::Base
has_and_belongs_to_many :people
has_and_belongs_to_many :messages
end
类组
贝隆模型
class Person < ActiveRecord::Base
has_many :deliveries
has_and_belongs_to_many :groups
class-Person
这些选项是O(n^2),并将相当多的内容放入内存中,因此只要您对此满意,这些选项就很容易实现:
您有两个选项,一个用于视图:
<% @people.each do |person| %>
<% next if person.groups.blank? %>
<tr>
<td><%= person.phone_number %></td>
<td><%= person.subscribed? ? "Yes" : "No" %></td>
<td><%= person.city %></td>
<td><%= person.state %></td>
<td><%= person.zip %></td>
<td><%= person.country %></td>
<td><%= time_ago_in_words person.created_at %> ago</td>
<td><%= person.groups.order(:id).pluck(:name).to_sentence %></td>
</tr>
<% end %>
这些选项是O(n^2),并在内存中插入了相当多的内容,因此只要您对此满意,这些选项就很容易实现:
您有两个选项,一个用于视图:
<% @people.each do |person| %>
<% next if person.groups.blank? %>
<tr>
<td><%= person.phone_number %></td>
<td><%= person.subscribed? ? "Yes" : "No" %></td>
<td><%= person.city %></td>
<td><%= person.state %></td>
<td><%= person.zip %></td>
<td><%= person.country %></td>
<td><%= time_ago_in_words person.created_at %> ago</td>
<td><%= person.groups.order(:id).pluck(:name).to_sentence %></td>
</tr>
<% end %>
你能给我们展示你的观点吗(你在哪里循环人-我猜?)?如果你在群体和人之间有任何关联,你也能展示吗?你能给我们展示你的观点吗(你在哪里循环人-我猜?)?如果你在群体和人之间有任何关联,你也可以展示一下吗?谢谢,视图中的一个可以工作,但我想把它过滤到控制器上。但是当我尝试你建议的方法时,它会给我一个错误“keep_if”没有定义?谢谢,视图中的方法可以工作,但我想将它过滤到控制器。但是当我尝试你建议的方法时,它给了我一个错误,没有定义“keep_if”?
@people = Person.order(sort_column => sort_direction).to_a.keep_if { |person| person.groups.present? }