2016-06-05 12 views
0

Gibt es eine einfache Möglichkeit, so etwas wie current_page? Methode von ActionView::Helpers::UrlHelper im Controller zu verwenden?aktuelle_seite? innerhalb des Controllers

Ich habe Routing wie:

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

Und ich möchte einen Scheck in meinem Controller tun, wie aussehen:

class AddressesController 

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

end 

Was ist der einfachste Weg, es zu erreichen?

+0

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i- original_url auf diese Weise können Sie 'request.original_url' oder' request.original_fullpath' eingeben. –

Antwort

1

Im Gegensatz zu vielen anderen Hilfsmethoden ist UrlHelper nicht in Ihren Controllern enthalten. Also, wenn Sie es in Ihrem Controller verwenden möchten, können Sie einfach schließen es dort und es verwenden:

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

Vielen Dank für Ihre Antwort, aber Sie haben jetzt einen anderen Fehler: 'an url_for übergebene Argumente können nicht bearbeitet werden. Bitte verlangen Sie Routen oder stellen Sie Ihre eigene Implementierung zur Verfügung. Ich habe versucht, Routen wie 'include Rails.application.routes.url_helpers' hinzuzufügen, aber immer noch nichts :( – Sasha

+1

Übergeben Sie Strings an' current_page? 'Wie in Ihrem Beispielcode oder anderen Argumenten? – Uzbekjon

Verwandte Themen