rails - передача имени метода вспомогательной функции - PullRequest
1 голос
/ 22 декабря 2009

документы говорят, что options_from_collection_for_select следует использовать следующим образом:

options_from_collection_for_select(collection, value_method, text_method, selected = nil) 

так, в моем случае, например

options_from_collection_for_select(@messages,'id','title')

но мне нужно добавить больше информации в заголовок, поэтому я попытался сделать следующее:

class Message < ActiveRecord::Base

 def proper_title
  self.name+", updated at "+self.updated_at
 end

end

и это работает, но дело в том, что мне нужно интернационализировать строки, и это немного сложнее с моделями, чем с контроллерами. Теперь я должен сделать модель интернационализации в этом случае или можно как-то обойти? спасибо

1 Ответ

1 голос
/ 04 января 2010

Вы все еще можете позвонить I18n.translate() в модели. Это даст вам тот же результат, что и t() помощник

# Message.rb
def proper_title
  I18n.translate("message.proper_title", :name => self.name, :updated_at => self.updated_at)
end

# en.yml
en:
  message:
    proper_title: "{{name}}, updated at {{updated_at}}"

# view
options_from_collection_for_select(@messages,'id','proper_title')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...