我有一个“名字”数组,我想显示当前用户的名字,只要它是数组中的唯一名称。如果数组中还有其他名称,我不想显示当前用户的名字。
目前,我列出名称并排除当前用户的名称,但如果它是阵列中唯一的名称,则不希望排除当前用户的名称。我希望我能解释清楚。
我的代码现在:
module ConversationsHelper
def other_user_names(conversation)
users = []
conversation.messages.map(&:receipts).each do |receipts|
users << receipts.select do |receipt|
receipt.receiver != current_user
end.map(&:receiver)
end
users.flatten.uniq.map(&:name).join ', '
end
end
答案 0 :(得分:5)
这应该有效:
def other_user_names(conversation)
# get all users (no duplicates)
users = conversation.messages.map(&:receipts).map(&:receiver).uniq
# remove current user if there are more than 1 users
users.delete(current_user) if users.many?
# return names
users.map(&:name).join(', ')
end
我会将第一行移到Conversation#users
方法中。