使用Rails将值添加到隐藏字段

时间:2012-07-05 19:48:43

标签: ruby-on-rails hidden-field embedded-ruby

我正在研究构建一个名为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 %>

1 个答案:

答案 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