6 Stimmen

Rails: Wie verwende ich Helper in einer separaten Klasse in lib

Ich habe versehentlich eine Datei im Lib-Ordner erstellt und möchte TextHelper in dieser Datei verwenden. Wie kann ich TextHelper verfügbar machen?

Vorschläge sind willkommen, Danke,

6voto

Ian Terrell Punkte 10459

Eigentlich ist es überhaupt nicht schwer. Sie können einfach das TextHelper Modul von Ihrer Klasse einbinden.

class MyLib
  include ActionView::Helpers::TextHelper

  def five_things(x)
    pluralize 5, x
  end
end

>> MyLib.new.five_things "Hund"
=> "5 Hunde"

Das stammt von einer Klasse, die ich in lib definiert habe, und die Ausgabe einer script/console Sitzung, um sicherzustellen, dass alles reibungslos funktioniert.

2 Stimmen

Seltsamerweise scheint dies nicht zu funktionieren, wenn es sich um eine Klassenmethode handelt, wie z.B. def self.five_things(x). Irgendwelche Ideen warum?

0 Stimmen

Versuchen Sie, anstelle von MyLib.new.five_things MyLib.five_things zu verwenden.

0 Stimmen

Das scheint im Produktionsmodus nicht zu funktionieren. Hast du eine Idee, warum?

1voto

psr Punkte 2349

Für diejenigen, für die die self-Methoden nicht die Funktionen von Helper erben zu funktionieren scheinen, wird dies funktionieren:

class MyLib

  class << self

    include Path::To::YourHelper

    def test_func(x)
      method_in_helper 5, x
    end

  end

end

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X