Ответ Мэтта верен для вашего точного вопроса, и я мог бы быть не в себе с пониманием вашей ситуации, но ...
Я бы передал весь пользовательский объект в партиал через локальный хеш.
render(
:partial => "shared/titles",
:object => @titles,
:locals => { :user => @user }
)
Затем при частичном вызове вспомогательный метод возвращает правильную дату для каждого заголовка, что-то вроде:
<p><%= title_date_for_user(title, user) %></p>
Передайте пользователя и каждый титровальный объект вспомогательному методу.
def title_date_for_user(title, user)
case user.date_i_like_to_see
when "created_on"
title_date = title.created_on
when "updated_on"
title_date = title.updated_on
end
return title_date.to_s(:short)
end
Метод date_i_like_to_see
находится в модели User и возвращает строку (created_on
или updated_on
) на основе некоторой логики, специфичной для данного пользователя.
Этот подход убирает большую часть логики и сохраняет ваш взгляд красивым и чистым. Кроме того, это упрощает добавление дополнительных функций, специфичных для данного пользователя, позже.