Rails:如何在option_groups_from_collection_for_select中调用集合成员

时间:2010-08-09 10:10:00

标签: ruby-on-rails

我要弄清楚如何在option_groups_from_collection_for_select中使用我想要播放的集合的一个成员调用一个函数。

样本如下:

option_groups_from_collection_for_select(@categories, :children, :name, :id, :name, 3)

在我的代码中,我需要将:name标签替换为计算正确翻译的函数。当我在模型中编写此函数时,会出现一个错误,即他找不到此方法名称。如果我把它放到辅助控制器中,我就没有关于哪些类别应该被翻译的信息......

本手册介绍了该标签方法:

  

group_label_method:a的名字   在成员上召唤时的方法   of collection,返回一个字符串   用作其标签属性   < OPTGROUP>标签

我在哪里写这个?

由于 马库斯

1 个答案:

答案 0 :(得分:1)

我假设您正在调用这样的函数:

option_groups_from_collection_for_select(@categories, :children, my_translate_function, :id, :name, 3)

这不起作用,因为未定义“my_translate_function”。

你必须在函数名前放一个冒号:

option_groups_from_collection_for_select(@categories, :children, :my_translate_function, :id, :name, 3)

rails将使用send方法在您的对象上调用“my_translate_function”。