Rails: как вызывается член коллекции в option_groups_from_collection_for_select - PullRequest
0 голосов
/ 09 августа 2010

Я собираюсь выяснить, как вызвать функцию с одним членом коллекции, которую я хочу, чтобы это играло в option_groups_from_collection_for_select.

Пример выглядит следующим образом:

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

В моем коде мне нужно заменить тег: name на функцию, которая вычисляет правильный перевод.Когда я пишу эту функцию в модели, возникает ошибка, что он не находит имя этого метода.Если я вставлю его в вспомогательный контроллер, у меня не будет информации о том, какая категория должна быть переведена ...

В руководстве написано о методе метки:имя метода, который при вызове члена коллекции возвращает строку, которая будет использоваться в качестве атрибута метки для его тега

.

Где я должен написать это?

Спасибо, Маркус

1 Ответ

1 голос
/ 09 августа 2010

Полагаю, вы вызываете функцию следующим образом:

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 для вашего объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...