2009-12-22 6 views
1

docs disent que options_from_collection_for_select doit être utilisé comme suit:rails - en passant le nom de méthode pour fonction d'aide

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

donc, dans mon cas, par exemple

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

mais je dois mettre plus d'informations à titre, donc ce que j'ai essayé de faire était:

class Message < ActiveRecord::Base 

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

end 

et cela fonctionne, mais chose est que j'ai besoin de chaînes Ternationalized et c'est un peu plus difficile avec les modèles qu'avec les contrôleurs. dois-je maintenant faire un modèle d'internationalisation dans ce cas ou est-il possible de contourner d'une manière ou d'une autre? merci

Répondre

1

Vous pouvez toujours appeler I18n.translate() dans le modèle. Il vous donnera le même résultat que t() helper

# 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') 
Questions connexes