У меня есть приложение (rails 3.2) с электронной почтой haml (3.1.4). В шаблоне электронной почты я хотел использовать link_to, но, по-видимому, ни один из этих 4 не работает в производстве:
#{link_to(my_models_url)}
= link_to(my_models_url)
/ @url set to my_models_url
#{link_to(@url)}
= link_to(@url)
В режиме разработки все работает нормально, но на производстве я получаю следующую ошибку:
No route matches {}
actionpack (3.2.0) lib/action_dispatch/routing/route_set.rb:503:in `raise_routing_error'
Это работает, когда я использую вспомогательные методы раньше:
/ @my_link set to link_to(my_models_url)
#{@my_link}
= @my_link
Но это не удобно, если в письме есть больше ссылок, и в целом я не понимаю, почему ни один из первых 4 вариантов не должен быть в порядке. Я понятия не имею, откуда эта проблема. Буду признателен за любую помощь в этом ...
РЕШЕНИЕ:
Благодаря iWasRobbed я нашел, где были мои проблемы:
- все {resource} _path и {resource} _url должны быть установлены в почтовых программах как @variables, они не доступны в почтовых представлениях
- очевидно, метод link_to () в почтовой программе не такой, как в представлениях rails ... ему всегда нужны 2 аргумента, поэтому вместо link_to (@link), доступного в представлениях, нужно сделать link_to (@ link, @ link ). Пфффф ...