Rails использует именованные маршруты в помощнике (но с методами класса) - PullRequest
0 голосов
/ 08 мая 2009

Попытка использовать этот метод (суть состоит в том, чтобы использовать self.method_name в FunnyHelper, затем вызвать его как FunnyHelper.method_name в представлении).

Однако это вызывает, по крайней мере, пару проблем - такие методы, как h() и именованные маршруты нарушаются (они подходят для метода модуля def method_name, но не для метода класса def self.method_name) .

Очевидно, я могу избежать этого, опустив def self.method_name обратно на def method_name; Кто-нибудь с предложениями, как я могу взять свой пирог и съесть его тоже?

1 Ответ

1 голос
/ 08 мая 2009

Если вы действительно хотите сделать это, вы можете использовать

include ActionController::UrlWriter

чтобы получить доступ к названным маршрутам и

# h is a private method 
ActionController::Base.helpers.send :h, "<"

для других помощников вида. Но я бы не рекомендовал это. По моему мнению, шаблон дизайна, который здесь предлагается, - отстой, и я бы просто использовал helper: блоги, несмотря на их жалобы на то, что он не явный. Это правда, в некотором роде ... но Rails в целом и эта часть Rails в частности спроектированы полностью "неявным" способом, поэтому попытка борьбы с ним будет более сложной, чем стоит, как вы открытие.

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