2016-06-05 1 views
0

Есть ли простой способ использовать что-то вроде current_page? способ от ActionView::Helpers::UrlHelper внутренний контроллер?current_page? внутренний контроллер

У меня есть маршрутизация, как:

resources :addresses 
resources :mailing_addresses, :controller => 'addresses' 

И я хотел бы сделать проверку в мой контроллер, который будет выглядеть как этого:

class AddressesController 

    def index 
    if current_page?(live_addresses_path) 
     # ... logic goes here 
    elsif current_page?(addresses_path) 
     # ... logic goes here 
    end 
    end 

end 

Что это самый простой способ его достижения?

+0

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i- original_url таким образом, вы можете сделать 'request.original_url' или' request.original_fullpath' –

ответ

1

В отличие от многих других вспомогательных методов, UrlHelper не включен в ваши контроллеры. Итак, если вы хотите использовать его в контроллере, вы можете просто включить его там и использовать его:

class AddressesController 

    include ActionView::Helpers::UrlHelper 

    def index 
    if current_page?(live_addresses_path) 
     # ... logic goes here 
    elsif current_page?(addresses_path) 
     # ... logic goes here 
    end 
    end 

end 
+0

Благодарим вас за ответ, но с другой ошибкой: 'аргументы, переданные в url_for, не могут быть обработаны. Пожалуйста, требуйте маршруты или обеспечьте свою собственную реализацию ». Я попытался добавить маршруты, такие как 'include Rails.application.routes.url_helpers', но все равно ничего :( – Sasha

+1

Вы передаете строки в' current_page? ', Как в вашем примере кода или некоторых других аргументах? – Uzbekjon