2017-01-28 12 views
1

My rails appには、ユーザがプロファイルを設定するためのフォームが含まれています。フォームのセクションは、ユーザーが長いリストからサービスを選択できるようにし、最大5つの異なるサービスを選択することができます。埋め込みルビ表現タグの間のカンマ

<div class="form-group"> 
 
    <%= f.label :services_1 %> 
 
    <%= f.select :services_1, ['Service 1', 'Service 2', 'Service 3', 'Service 4', 'Service 5', 'Service 6', 'Service 7', 'Service 8', 'Service 9', 'Service 9', ], {}, class: 'form-control' %> 
 
    </div> 
 
     
 
     <div class="form-group"> 
 
    <%= f.label :services_2 %> 
 
    <%= f.select :services_2, ['Service 1', 'Service 2', 'Service 3', 'Service 4', 'Service 5', 'Service 6', 'Service 7', 'Service 8', 'Service 9', 'Service 9', ], {}, class: 'form-control' %> 
 
    </div> 
 
     
 
     <div class="form-group"> 
 
    <%= f.label :services_3 %> 
 
    <%= f.select :services_3, ['Service 1', 'Service 2', 'Service 3', 'Service 4', 'Service 5', 'Service 6', 'Service 7', 'Service 8', 'Service 9', 'Service 9', ], {}, class: 'form-control' %> 
 
    </div> 
 
     
 
     <div class="form-group"> 
 
    <%= f.label :services_4 %> 
 
    <%= f.select :services_4, ['Service 1', 'Service 2', 'Service 3', 'Service 4', 'Service 5', 'Service 6', 'Service 7', 'Service 8', 'Service 9', 'Service 9', ], {}, class: 'form-control' %> 
 
    </div> 
 
     
 
     <div class="form-group"> 
 
    <%= f.label :services_5 %> 
 
    <%= f.select :services_5, ['Service 1', 'Service 2', 'Service 3', 'Service 4', 'Service 5', 'Service 6', 'Service 7', 'Service 8', 'Service 9', 'Service 9', ], {}, class: 'form-control' %> 
 
    </div>

私はこの

Service 1, Service 2, Service 3, Service 4, Service 5 

のような自分のプロファイルページにこれらを一覧表示したいユーザーは、例えば5つの未満のサービスを選択した場合しかし、わずか2それは、この

になり
Service 1, Service 2, , , 

ここに私が含まれているものがあります私のビューファイルに

<p><%= @user.profile.services_1 %>, <%= @user.profile.services_2 %>, <%= @user.profile.services_3 %>, <%= @user.profile.services_4 %>, <%= @user.profile.services_5 %></p> 

余分なカンマを削除するにはどうすればよいですか?

答えて

0

私はあなたが配列に選択したサービスを集め、それらを結合したいと思うでしょう。

# in the controller 
@services = [] 
@services << @user.profile.services_1 if @user.profile.services_1 
@services << @user.profile.services_2 if @user.profile.services_2 
@services << @user.profile.services_3 if @user.profile.services_3 
@services << @user.profile.services_4 if @user.profile.services_4 
@services << @user.profile.services_5 if @user.profile.services_5 

# in the view 
<p><%= @services.join(', ') %></p> 

これを超えて単純化できない場合は、このログインをモデルに配置する方がよい場合もあります。

# in the model 
def selected_services 
    services = [] 
    services << services_1 if services_1.present? 
    services << services_2 if services_2.present? 
    services << services_3 if services_3.present? 
    services << services_4 if services_4.present? 
    services << services_5 if services_5.present? 
    services 
end 

# in the controller 
@services = @user.profile.selected_services 
+0

多くのありがとうHarlemSquirrel!あなたの2番目の提案は、モデルに配置することでした。 –

+0

あなたは大歓迎です!それがあなたのために働いたなら、あなたは私の答えに投票することができます。 – HarlemSquirrel

+0

私はやったけど、私は15以下の評判を持っているので公衆のスコアに影響しないと言っているというフラッシュメッセージを受けた。 –

関連する問題