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
on 27.12.2007 16:36
on 27.12.2007 16:37
Ups, meinte natürlich folgende Helper: ActionView::Helpers::NumberHelper Sorry für den HTML Link. Daniel Weinand schrieb:
on 27.12.2007 16:53
Am 27.12.2007 um 16:35 schrieb Daniel Weinand: > 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: tomk32@gmx.de
on 27.12.2007 16:56
Daniel Weinand 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)
on 27.12.2007 17:19
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. ;) 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 Weiss schrieb:
on 30.07.2008 12:45
Jonathan Weiss wrote: > Daniel Weinand 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?
on 30.07.2008 13:32
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? ;-) 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
on 30.07.2008 13:59
Hallo, 2008/7/30 bevier <bevier@bussole.de>: > 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
on 30.07.2008 14:38
Andreas Roedl 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. :) Ansonsten werd ich so manches doch noch auf die Dreckige Tour machen. ;) Soll jetzt kein Angriff sein. Nicht falsch verstehen!! Wollte das nur mal gerade so los werden.
on 30.07.2008 18:53
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. ;)
on 30.07.2008 23:01
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 Weinand:
on 31.07.2008 10:15
Phillip Oertel 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 Weinand:
on 01.08.2008 05:58
hallo nochmal! Am 31.07.2008 um 10:15 schrieb Indra M.: > Phillip Oertel 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 ;-) 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
on 01.08.2008 09:46
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
on 01.08.2008 21:11
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.
on 02.08.2008 14:41
zankäpfel? nee ... wir haben doch nur wortreich festgestellt, dass wir eh einer meinung sind ;-) viele grüße & ein schönes wochenende, phillip --- Am 01.08.2008 um 21:10 schrieb schroedi: