2009-12-22 18 views
1

文档说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

您仍然可以在模型中调用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')