2016-09-13 74 views
0

访问元素的文档状态 options_from_collection_for_select(collection, value_method, text_method, selected = nil)必须有元素respond_to?value_methodtext_method如何使用辅助方法从options_from_collection_for_select

如果我的collection是散列数组,我需要使用一些辅助方法value_methodtext_method

例如,

collection = [{ 
       model: "LaF" 
       year: 2016, 
       mileage: 1230 
      }, 
      { 
       model: "P1", 
       year: 2015, 
       mileage: 1311 
      }, 
      { 
       model: "918", 
       year: 2015, 
       mileage: 2448 
      } 

]

例如:我希望能够使用I18n.interpolate("car.mileage",mileage: element[:mileage]),方法上的每个元件的model键。

TL; DR:如何在options_from_collection_for_select元素上调用散列键方法或其他辅助方法?

回答

0
options_from_collection_for_select(collection, value_method, ->(element) { I18n.interpolate("car.mileage",mileage: element[:mileage]) }) 

value_method和:text_method参数是要在集合的每个成员上调用的方法。返回值分别用作每个复选框标记的值属性和内容。它们也可以是响应调用的任何对象,例如proc,将调用集合的每个成员来检索值/文本。