0

私はパーティーと呼ばれるイベントのゲストリストを作成する方法に取り組んでいます。招待された各ゲストのuser_idは、スペースで区切られた非表示のフィールドに格納されます。

<%= hidden_field_tag 'guestlist', nil, :class => 'guest_list' %>

ユーザーが新しいゲストを招待すると、ゲストのIDがフィールドに追加されて保存されます。

ユーザーが既存のパーティーを編集したときに、すでに招待されているゲストのIDが非表示のguest_listフィールドに表示されるようにする方法を見つけようとしています。

埋め込まれたRubyでこれを行う方法はありますか?次のようなもの:

<% @party.guests.each do |guest| %>
 Do something here
<% end %>
4

1 に答える 1

3

これを試してください(読みやすくするために2つのステップで):

<% guest_ids = @party.guests.map(&:id).join(",") %>
<%= hidden_field_tag 'guestlist', guest_ids, :class => 'guest_list' %>

.id最初の行は各ゲストを呼び出し、次にそれらを配列(のような[1, 4, 12])に収集し、次に.joinそれらを文字列に入れ、そこで","それらを分離するために使用します。

編集これ.map(&:id)は言うことと同じです:

@part.guests.map do |guest|
    guest.id
end

しかし、それはそれに凝縮されてい&:idます。これ.idは明らかに、呼び出したいメソッド名であり、その結果を収集したいものであり、&は基本的にそれをブロックに変換します。あなたはいくつかのより多くの情報のためにこれを読むことができます、あるいはおそらくもっと良い、このSO投稿

于 2012-07-05T19:58:48.317 に答える