Как мне динамически создать named_route в рельсах? - PullRequest
1 голос
/ 23 августа 2010

У меня сейчас есть это в моем ApplicationController

def account_path
  eval "#{current_user.type.downcase}_account_path"
end

Я использую это для перенаправлений и т. Д. Но я также хочу использовать это в представлении (для link_to и т. Д.)Является ли это законным случаем для совместного использования кода между контроллером и представлением, чтобы он оставался СУХИМЫМ, даже если он нарушает MVC?

1 Ответ

2 голосов
/ 23 августа 2010

Да, я бы сказал, что это законное повторное использование.Вызов helper_method осуществляется по причине, поэтому:

helper_method :account_path

сделает это доступным и для ваших просмотров.

Если вы предпочитаете не использовать eval, вы можете сделать:1008 *

def account_path
  self.send("#{current_user.type.downcase}_account_path")
end

, поскольку метод _path интерпретируется как метод на контроллере.

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