Rails Helper in eigener Klasse benutzen?

Hallo,
ich stehe gerade auf dem Schlauch. Ich habe ein eigene Klasse.
Die Datei befindet sich im lib Ordner der Rails Anwendung.

Wie kan ich jetzt aus dieser Klasse auf diese Rails Helper zugreifen?
ActionView::Helpers::NumberHelper
http://railsmanual.com/module/ActionView%3A%3AHelpers%3A%3ANumberHelper

Irgendwie funktioniert alles nicht was ich versuche. Was muss ich
“requiren” oder laden?

Gruss

Ups, meinte natürlich folgende Helper:
ActionView::Helpers::NumberHelper

Sorry für den HTML Link.

Daniel W. schrieb:

Am 27.12.2007 um 16:35 schrieb Daniel W.:

ich stehe gerade auf dem Schlauch. Ich habe ein eigene Klasse.
Die Datei befindet sich im lib Ordner der Rails Anwendung.

Wie kan ich jetzt aus dieser Klasse auf diese Rails Helper zugreifen?
ActionView::Helpers::NumberHelper
<http://railsmanual.com/module/ActionView%3A%3AHelpers%3A%
3ANumberHelper>

Irgendwie funktioniert alles nicht was ich versuche. Was muss ich
“requiren” oder laden?

Die ganzen Helper von Rails sollten eigentlich immer zur
Verfügungstehen, allerdings in der View und wenn du die Methode aus
einem controller oder ähnlichem aufrufst sollte es klarerweise nicht
gehen. Also, rufst du die Methode wirklich von der richtigen
Stelle aus auf?

Ansonsten, sollte in einem Controller folgendes gehen:
helper NumberHelper

ciao, tom


Thomas R. “TomK32” Koll || http://tomk32.de || http://ananasblau.com
(NEW)
just a geek trying to change the world
Skype: TomK32 || Mail: [email protected]

Danke euch beiden für die Antwort. Jonathan hat den Nagel auf den Kopf
getroffen.
Ich habe die ganze Zeit versucht irgendwas über die Verzeichnisstruktur
zu “requiren”.
Das es mit einem so einfachen include erledigt ist, kam mir nicht in den
Sinn. :wink:
Mit dem Singleton ist auch ein schöner Ansatz.

Vielen Dank für den Hinweis.

Gruss und Guten Rutsch wenn man sich nicht mehr liesst.

Daniel

Jonathan W. schrieb:

Jonathan W. wrote:

Daniel W. schrieb:

Ups, meinte natürlich folgende Helper:
ActionView::Helpers::NumberHelper

class MyClass
include ActionView::Helpers::NumberHelper
end

oder das hier in lib/helper.rb:

A helper class that includes ActionView helpers

and offers their functionality to others

class Helper
include Singleton
include ApplicationHelper
include ActionView::Helpers::TextHelper
include ActionView::Helpers::SanitizeHelper
include ActionView::Helpers::NumberHelper

def self.help
Helper.instance
end
end

Dann kannst du ueberall im Code den helper so nutzen:

Helper::help.h(text)

Ich möchte eine Helpermethode im Controller benutzen. Wenn ich
allerdings diesen Helper einfach include (include
ActionView::Helpers::TestHelper), dann bekomme ich folgende
Fehlermeldung:

NameError: uninitialized constant ActionView::Helpers::TestHelper

Was mache ich falsch?

Daniel W. schrieb:

Ups, meinte natürlich folgende Helper:
ActionView::Helpers::NumberHelper

class MyClass
include ActionView::Helpers::NumberHelper
end

oder das hier in lib/helper.rb:

A helper class that includes ActionView helpers

and offers their functionality to others

class Helper
include Singleton
include ApplicationHelper
include ActionView::Helpers::TextHelper
include ActionView::Helpers::SanitizeHelper
include ActionView::Helpers::NumberHelper

def self.help
Helper.instance
end
end

Dann kannst du ueberall im Code den helper so nutzen:

Helper::help.h(text)

hi,

Ich möchte eine Helpermethode im Controller benutzen. Wenn ich
allerdings diesen Helper einfach include (include
ActionView::Helpers::TestHelper), dann bekomme ich folgende
Fehlermeldung:

NameError: uninitialized constant ActionView::Helpers::TestHelper

Was mache ich falsch?

wenn du tatsächlich nichts weiter als eine Helfermethode im Controller
nutzen willst - warum schreibst du sie dann nicht einfach im Controller
und erklärst sie mit “helper_method :xyz” zur Helfermethode?

:wink:

bevier


IKI: Infinity Kills Information - how the knowledge of what you’re doing
betters the result
http://bussole.de/
Level of Math limits Level of Technology
http://infomath.bussole.de/
4fF method to evaluate databases: compare - count
http://dtp-isw.de/
ML method to grip problems: think - write - relate - count - program
http://dtp-isw.de/

Information: wiederholbare und zusammenhängende Wertveränderung von
Eigenschaften - als mathematische Gruppe erklärt sie einerseits die hohe
Nützlichkeit mengenmathematischer Techniken in der Naturwissenschaft,
andererseits die Notwendigkeiten des Lernens in offenen Umgebungen sowie
Strategie und Aufbau von Informationsverarbeitungen

Andreas R. schrieb:

Ist eh recht schlechter Stil, finde ich.

Was is besserer Stil? Wenn ich eine Funktion im Controller oder einer
Lib benutzen möchte die
irgendwo schon in einem Helper vorhanden ist macht es ja Sinn es so zu
machen, oder?

Oder ist es besserer Stil die Methode irgendwo neu zu implementieren?
Das wäre ja wieder nicht DRY…

Also Stil und DRY hin oder her. Nur manchmal gehen mir diese ganzen
Pardigmen ein bisschen auf die
Nerven. Erst wird mal stundenlang drüber nachgedacht wie man das jetzt
am schönsten, sinvollsten, dry’sten
oder was auch immer macht. In der Zeit ist man “Quick’n’Dirty” schon
längstens fertig, und solange es funktoniert
ist mir das ziemlich egal obs jetzt guter oder schlechter Stil ist.

Zumal 99% der Leute hier oder in der Rails Scene an sich wahrscheinlich
nicht vor das Problem gestellt werden,
eine so hochperformante Anwendung schreiben zu müssen in der man Rails
und Ruby bis zum Letzten,
was Stil und damit evtl. auch Performance angeht, ausquetschen muss.

Wer Spass und Zeit hat sich immer viel Gedanken über sowas zu machen und
seinen Code oder Stil immer optimal haben will, der soll das tun. :slight_smile:
Ansonsten werd ich so manches doch noch auf die Dreckige Tour machen. :wink:

Soll jetzt kein Angriff sein. Nicht falsch verstehen!! Wollte das nur
mal gerade so los werden.

Hallo,

2008/7/30 bevier [email protected]:

wenn du tatsächlich nichts weiter als eine Helfermethode im Controller
nutzen willst - warum schreibst du sie dann nicht einfach im Controller und
erklärst sie mit “helper_method :xyz” zur Helfermethode?

Ist eh recht schlechter Stil, finde ich.

Andreas

Ich wollte hier keine Grundsatzdiskussionen lostreten.
Der Grund warum ich die Helpermethode im Controller aufrufen wollte war,
dass ich mit RJS ein div aktualisieren wollte.

Jetzt habe ich das ganze in ein rjs-File gepackt, daraus kann man die
Helper aufrufen.

So verletze ich wohl keine Paradigmen. :wink:

hi,

den letzten satz hättest du dir ja wohl sparen können!

On following rules:

It’s true that rules are made to be broken, but here are the rules
that you never break. Ever.

1. Follow every rule you don't understand.
2. Only break rules you fully understand and have good reason to

break.

[…] http://www.kirit.com/On%20following%20rules

viele
grüße,phillip


Am 30.07.2008 um 14:37 schrieb Daniel W.:

hallo nochmal!

Am 31.07.2008 um 10:15 schrieb Indra M.:

Phillip O. wrote:

den letzten satz h�ttest du dir ja wohl sparen k�nnen!

Was ist denn hier los?
Warum fühlst Du Dich denn jetzt angegriffen?

die aussagen in der vorhergegangenen mail finde ich durchaus
kontrovers … sinngemäß und etwas überspitzt hab ich das nämlich
so verstanden: “design-diskussionen (paradigmen) nerven und bringen
nix”, “habe keine zeit, um mir über sauberen code gedanken zu machen,
oder zu verstehen, warum sich bestimmte regeln etabliert haben,
hauptsache, es funktioniert”, “sauberer code ist nicht performant”,
“um eine performante anwendung zu schreiben muss ich ruby/rails bis
zum letzten ausquetschen”.

dann mit “ich will ja keine grundsatzdiskussion lostreten”
abzuschließen finde ich bischen seltsam, da man eigentlich mit einer
antwort rechnen und die meinung dann auch vertreten oder zumindest
besser erklären sollte.

ich finde die diskussion über richtiges design hier in der gruppe gut,
hier gibt es viel know-how, da kann jeder noch was mitnehmen. in der
täglichen arbeit hat man natürlich zu viele restriktionen, um dann
immer alles lehrbuch- bzw. peepcode-konform :wink: zu bauen; und
stundenlang übers design einer kleinen funktion zu sinnieren ist
natürlich auch quatsch.

aber wenigstens zu wissen, wie es denn gänge und was für alternativen
es gibt halte ich für sehr wichtig, und für einen der gründe, warum
es gruppen wie diese gibt. gerade weil hier auch leute unterwegs sind,
die den fragen nach zu urteilen noch keine lange programmiererfahrung
mitbringen (damit ist nicht die ausgangsfrage dieses threads gemeint).
rails erlaubt schließlich so ziemlich jedes paradigma zu brechen
(model/controller-code in der view, model-code im controller,
unescapede params direkt in sql queries oder im template-code, meta-
programmierung wo es die “normalen” OOP mittel auch tun, …).

Ich habe hier nicht mit dieser Diskussion angefangen und denke auch
nicht das so Kommentare wie Deiner in dieses Forum gehören.

ich hoffe das ist jetzt klarer geworden, und entschuldige mich nochmal
bei allen die ich damit angegriffen habe für den blöden spruch ohne
erklärung!

viele grüße,
phillip

Phillip O. wrote:

hi,

den letzten satz h�ttest du dir ja wohl sparen k�nnen!

Was ist denn hier los?
Warum fühlst Du Dich denn jetzt angegriffen?

Falls Du das überlesen hast, da war ein zwinkernder Smiley hinter dem
Satz!

Ich habe hier nicht mit dieser Diskussion angefangen und denke auch
nicht das so Kommentare wie Deiner in dieses Forum gehören.

On following rules:

It’s true that rules are made to be broken, but here are the rules
that you never break. Ever.

1. Follow every rule you don't understand.
2. Only break rules you fully understand and have good reason to

break.

[…] http://www.kirit.com/On%20following%20rules

Der zweite Punkt gefällt mir eigentlich (bis auf das “only”), den ersten
würde ich allerdings nicht vollkommen unterschreiben.

Ich weiß nur nicht was das Zitat mit meinem Post zu tun hat.

viele
gr��e,phillip


Am 30.07.2008 um 14:37 schrieb Daniel W.:

Will jetzt hier auch nicht gross und breit weiter darüber diskutieren.
Aber wenn auch überspitzt ausgedrückt,
ich habe nie gesagt, oder sagen wollen, dass man sich keine Gedanken
über sauberen Code machen soll und muss.
Man sollte sich aufjedenfall Gedanken machen. Dass etablierte Sachen gut
sind, und durchaus auch so gemacht werden sollten steht ausser Frage.

“sauberer code ist nicht performant”, “um eine performante anwendung
zu schreiben muss ich ruby/rails bis zum letzten ausquetschen”.
Meinte ich genau andersrum. Also zumindest für den ersten Teil.
Unsauberer Code ist nicht unbedingt der schnellste,
aber für die “normale” Rails Anwendung ist es in meinen Augen nicht
wirklich Thema Nummer 1 ob der Code denn nun optimal
ist oder nicht. Ganz anderes Thema wird das dann wenn es meintewegen um
Twitter oder sonstige Sachen geht. Dort geht es dann wirklich
um das letzte Quenchen Performance. Dann wird deswegen aber auch mit
Rails weg von Rails entwickelt. Ich meine die haben wo es ging AR
rausgelassen
um optimierte SQL Abfragen zu verwenden.

Es kommt halt immer drauf an was man machen will und muss. Nur finde ich
halt eben, dass es manchmal etwas übertreiben wird.

Hatte halt schon öfter mitbekommen, bzw. miterlebt wie wirklich die
trivialsten Dinge zu Tode diskutiert und gedacht wurden.
Das ist mir halt so noch nie untergekommen. Weder PHP, .NET noch sonstwo
Leuten. Es wird halt immer der Pragmatismus
gepredigt, aber an vielen Stellen frisst er sich selbst, weil eben ewig
lange (zu lange?) nach der pragmatischsten Lösung gesucht wird.

Wie gesagt, ist auch nur mein Eindruck und sollte keineswegs irgendwen
schlecht machen, oder die Leistungen der Gruppen/deren zu schmälern.
Ebenfalls sollte es auch nicht als Ratschlag gedacht sein, dass alles
hingesaut werden soll wie es einem gerade in den Sinn kommt.

Hatte nur das kurze Bedürniss mich mitzuteilen. Den letzten Satz mit dem
nicht angegriffen fühlen habe ich halt geschreiben, weil doch
der ein oder andere sich hier ziemlich schnell angegriffen fühlt.

In diesem Sinne

Happy Coding

Hallo Liste,
Hallo Zankäpples ;-),

die Diskussion über Design ist in der Tat wichtig. Gerade ich als
Rails-(neu)Einsteiger habe mich sehr sehr intensiv mit Design und OOA
und OOD beschäftigt. Immerhin kann man sich da im nachhinein bei großen
Anwendungen einige Knieschüsse ersparen, wenn man den Code nur an einer
einzigen Stelle ändern muss. DRY.

Klar werden da jetzt einige PHP oder Perlhacker anmerken, dass es bisher
auch ohne ging. Aber mein persönliches Ziel ist guten Code zu
produzieren, damit der Kunde (ähm in dem Fall ich - zufrieden ist) und
der Code oder die Klasse genau das tut was sie soll und auch nur das.
Immhin würden wir ^^unsere Wohnungen immer noch mit Kerzen oder Öllampen
erleuchten, wenn alles was wir früher getan hätte immer so gut gewesen
wäre… Paradigmen hin oder her. Jeder sollte für sich selbst festlegen,
ob er es tun will oder nicht.

Ich werde es tun und werde die gesamten Paradigmen versuchen (!!! )
anzuwenden, außer ich kann entscheiden, dass ich genau in diesem Fall es
nicht machen muss, weil… ich einen Wegwerfcode mal schnell
hinknallen musste.

So meine Gedanken als RailsNewbee.

Mario
http://www.railscamp.de

P.s.: Freut euch auf die nächste Mail mit meinen Gedanken zu Hans Wurst
an the Instant Leberkäs’ semmeln. Frei erfunden aber garanitert
interessant.

zankäpfel? nee … wir haben doch nur wortreich festgestellt, dass wir
eh einer meinung sind :wink:

viele grüße & ein schönes wochenende,
phillip


Am 01.08.2008 um 21:10 schrieb schroedi:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs