2016-08-11 10 views
1

Я написал application_helper.rb, который в основном является глобальным помощником для моего приложения Rails. И для того, чтобы я использовать вспомогательный URL-адрес, как post_url(post), Rails заставить меня включить этот код в верхней части моего application_helper.rb:неправильное количество аргументов (3 для 0..1), когда я включаю «Rails.application.routes.url_helpers»

include Rails.application.routes.url_helpers

я включал эту строку кода, как это:

include Rails.application.routes.url_helpers 
include ActionView::Helpers::TextHelper 

module ApplicationHelper 
.... 
end 

И вдруг, когда я загрузить мое приложение в браузере, кажется, все link_to коды бросать такие же ошибки, как это:

wrong number of arguments (3 for 0..1)

Вот скриншот этой ошибки:

enter image description here

Это образец одного моего link_to кода:

<%= link_to root_path do %> 
    <img src="https://googledrive.com/host/xxx/xxx-logo-small.png" class="" /> 
    <% end %> 

И его не только ссылку, которая вызывает ошибку, но все ссылки в моем приложении! Так что случилось с этим include Rails.application.routes.url_helpers? Почему это вызывает такую ​​ошибку? И как я могу использовать это и исправить проблему, которую он вызывает одновременно?

Спасибо!

+0

Try включая их ВНУТРИ ваш помощник модуля, а не над ним. – Raffael

+0

Никогда не слышал о Rails, чтобы заставить кого-то «включить Rails.application.routes.url_helpers», чтобы использовать помощники Rails в ваших модулях «Помощник». Как именно это вас заставляет? – jibiel

+0

@ Raffael Я пробовал это. Но тогда у меня также есть файл рейка, который зависит от этого application_helper. И когда я помещаю их в INSIDE и пытаюсь запустить мой файл рейка, у меня есть ошибка. Так вот почему я положил их ВНЕШНИЕ. Но опять же, когда я ставил их снаружи, я получил ошибку, как вы видите в этой теме. –

ответ

0

ли вам нужно добавить также это включает в ваших помощников

include AbstractController::Rendering 
include AbstractController::Helpers 
include AbstractController::Translation 
include AbstractController::AssetPaths 
include Rails.application.routes.url_helpers