Rails передает сообщение динамическому методу - PullRequest
0 голосов
/ 08 апреля 2011

Поэтому я хочу динамически иметь new_course_discussion_path (@discussable) или new_group_discussion_path (@discussable) в зависимости от типа класса @discussable.Как передать сообщение (@discussable) этому методу?Я попытался:

"new_#{@discussable.class.to_s.downcase}_discussion_path".constantize(@discussable)

, но это говорит "неправильное количество аргументов (1 для 0)".Я новичок в рельсах.Пожалуйста помоги!Спасибо.

Обновление: сейчас вся строка

= link_to '>New Discussion', "new_#{@discussable.class.to_s.downcase}_discussion_path".constantize(@discussable)

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011
send "new_#{@discussable.class.to_s.downcase}_discussion_path", @discussable

Помощниками пути являются методы , а не классы.Они доступны из контроллеров, представлений и вспомогательных методов, и если вы не квалифицируете вызов send, он вызовет метод для себя.

1 голос
/ 08 апреля 2011

Вы ищете метод Object.send .

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