我正在研究构建一个名为Party的事件的访客列表。每个受邀访客的user_id存储在隐藏字段中,以空格分隔。
<%= hidden_field_tag 'guestlist', nil, :class => 'guest_list' %>
当用户邀请新访客时,访客的ID将添加到该字段并存储。
我正试图找出一种方法,以便当用户编辑现有的聚会时,已邀请的访客的ID显示在隐藏的guest_list字段中。
有没有办法用嵌入式Ruby做到这一点?有点像:
<% @party.guests.each do |guest| %>
Do something here
<% end %>
答案 0 :(得分:3)
试试这个(为了便于阅读,分为两个步骤):
<% guest_ids = @party.guests.map(&:id).join(",") %>
<%= hidden_field_tag 'guestlist', guest_ids, :class => 'guest_list' %>
第一行将在每个guest虚拟机上调用.id
,然后在一个数组中收集它们(如[1, 4, 12]
),然后.join
会将它们放入一个字符串中","
将它们分开。
编辑 .map(&:id)
与说:
@part.guests.map do |guest|
guest.id
end
但是它被浓缩到&:id
。 .id
显然是我们想要调用的方法名称以及我们想要收集的结果,以及&amp;基本上将其转换为块。您可以read this获取更多信息,或者更好,this SO post。