代码之家  ›  专栏  ›  技术社区  ›  Pavel K.

rails-将方法名传递给helper函数

  •  1
  • Pavel K.  · 技术社区  · 15 年前

    文档说,从“收集”中选择“选择”的选项应按以下方式使用:

    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 回复  |  直到 15 年前
        1
  •  1
  •   sikachu    15 年前

    你仍然可以打电话 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')