2015-10-05 16 views
8

Jestem zdezorientowany przez dokumentację szyn, którą czytam: here. W szczególności to zdanie:Używanie pomocnika w kontrolerze w Railsach 4.2.4

Domyślnie każdy kontroler będzie zawierał wszystkich pomocników. Te pomocnicy są dostępne tylko na kontrolerze przez .helpers

Co to .helpers, że ma na myśli? Mam pomocnika zdefiniowany w app/helpers/areas_helper.rb:

module AreasHelper 
    def my_helper 
    puts "Test from helper" 
    end 
end 

Chciałbym użyć tego pomocnika w app/controllers/locations_controller.rb:

class LocationsController < ApplicationController 
    def show 
    helpers.my_helper 
    end 
end 

Jednak uzyskać metodę niezdefiniowany błąd. W jaki sposób powinno się używać tego .helpers?

Wiem, że istnieją inne sposoby uzyskania dostępu do pomocy w kontrolerach, ale ja w szczególności pytam o tę część dokumentacji i co ona próbuje powiedzieć.

+0

Wierzę, że odniesienie do '.helpers' jest wbudowane pomocników Rails, takich jak' redirect_to' itp. –

+0

Ale co to znaczy. Gdzie ".helpers" wchodzi w grę, gdy używa wbudowanego pomocnika Railsowego, takiego jak 'redirect_to'? – flyingL123

+0

Tbh Nie wiem. Czytam na ten temat. Moja odpowiedź jest prawidłowa, w ten sposób używamy niestandardowych pomocników w naszych kontrolerach - tak jak w przypadku '.helpers' patrzę na to –

Odpowiedz

7

Ty obejmować klasę pomocnika w kontrolerze:

#app/controllers/locations_controller.rb 
class LocationsController < ApplicationController 
    include AreasHelper 

    def show 
     my_helper 
    end 
end 
+1

Jeśli potrzebnych było kilku pomocników, można je oddzielić przecinkami - "include" to AreasHelper, AnotherHelper''' –

Powiązane problemy