Вам необходимо импортировать TranslateModule
в каждый модуль, в котором вы хотите использовать translate
pipe.
import { TranslateModule } from '@ngx-translate/core';
...
imports: [
TranslateModule // do not call forRoot from any module other than AppModule
]
...
Эквивалентное утверждение в Ruby:
date_wanted = :created_on
title_date = list_titles.send(date_wanted)
Вы можете добавить функцию к модели следующим образом
def get_date(date)
return created_on if date == 'created'
return updated_on
end
Ответ Мэтта верен для вашего точного вопроса, и я мог бы быть не в себе с пониманием вашей ситуации, но ...
Я бы передал весь пользовательский объект в частичное через хэш местных жителей.
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 и возвращает строку ( made_on
или updated_on
) на основе некоторой логики, специфичной для данного пользователя.
Этот подход убирает большую часть логики и сохраняет ваши вид красивый и чистый. Кроме того, это упрощает добавление дополнительных функций, специфичных для данного пользователя, позже.
Я думаю, что ответ на исходный вопрос - send:
irb(main):009:0> t = Time.new
=> Thu Jul 02 11:03:04 -0500 2009
irb(main):010:0> t.send('year')
=> 2009
send позволяет динамически вызывать для объекта метод с произвольным именем.