我有一个视图,我试图显示数组中的所有对象。对象是门票。
<tbody>
<% @tickets.each do |ticket| %>
<tr>
<td><%= ticket.ticket_number %></td>
<td><%= ticket.title %></td>
<td><%= ticket.product_name %></td>
<td><%= truncate(ticket.description) %></td>
<td><%= ticket.status %></td>
<td><%= link_to "Show", users_ticket_path(ticket) %>
</tr>
<% end %>
</tbody>
我的控制器正在查找与当前用户具有相同“reseller_id”的所有用户。 所以说我有3个用户都在同一个经销商下。 3个用户都拥有相同的'reseller_id' 这是我的控制器不起作用。
def index
if admin_user?
@test = "HELLO"
all_users = User.find_all_by_reseller_id(current_user.reseller_id)
all_users.each do |u|
@tickets = u.tickets
end
#@tickets = @tickets.paginate(page: params[:page])
else
@test = "WORLD"
@tickets = current_user.tickets.paginate(page: params[:page])
end
end
这会保存一个空白数组。 如何使用所有故障单对象创建数组?
由于
答案 0 :(得分:2)
目前@tickets
等于找到的最后一个用户的门票。使用类似这样的东西
def index
@tickets = []
if admin_user?
@test = "HELLO"
all_users = User.find_all_by_reseller_id(current_user.reseller_id)
all_users.each do |u|
@tickets += u.tickets
end
#@tickets = @tickets.paginate(page: params[:page])
else
@test = "WORLD"
@tickets = current_user.tickets.paginate(page: params[:page])
end
end
答案 1 :(得分:0)
或者你可以在一行中完成
def index
if admin_user?
@test = "HELLO"
@tickets = Ticket.where("user_id IN (?)", User.find_all_by_reseller_id(current_user.reseller_id).map(&:id))
@tickets = @tickets.paginate(page: params[:page])
else
@test = "WORLD"
@tickets = current_user.tickets.paginate(page: params[:page])
end
end