Подобные вещи обязательно должны быть преобразованы в помощника, например,
# view
= try_link(users, users2)
# helper
def try_link(users, users2)
options = { :k => users.collect { |m| m.user.username }, :proof => true }
unless users2.blank?
options[:h] = users2.collect { |m| m.user2.username2 }
end
link_to 'Try', new_try_path(options)
end
Это почти тот минимум, который вы можете сделать, чтобы сделать код вида менее ужасным.
Возможно, вытакже хочу рассмотреть возможность включения всей модели в коллекцию.
Также Hash#merge
может быть полезно в таких случаях, как это, где вы можете сделать
a = { :foo => 1 }
b = { :bar => 2 }
puts a.merge(b) # => { :foo => 1, :bar => 2 }