Вы можете переопределить ActiveModel::Conversion#to_partial_path
, то есть как рендер неявно ищет частичное:
class User < ApplicationRecord
# ...
def to_partial_path
"users/#{state}_user"
end
end
Но это переопределит то, как оно рендерится неявно везде, что может быть нежелательно. В противном случае я бы задал вопрос, действительно ли вам нужно сделать это более лаконичным - то, что вы делаете, - это не по пути, и лучше иметь код, который ясно показывает его намерение, а не что-то слишком умное / принудительно СУХОЕ.
Причина, по которой вы не нашли примеров использования коллекции, заключается в том, что она не будет работать. Он перебирает коллекцию и вызывает #to_partial_path
для каждого члена.