On Tue, 7 Oct 2008 23:20:12 +0200, "Michael Schuerig" <[EMAIL PROTECTED]> said: > On Tuesday 07 October 2008, Torsten Flammiger wrote: > > Hallo allerseits, > > > > folgende Frage auf die ich auch nach Stunden der Suche keine Antwort > > finde: wie finde ich das Model, auf welches sich der aufrufende > > Controller bzw. dessen Aktion bezieht? > > An welcher Stelle denn? Im Controller selbst weisst du doch ganz genau, > mit welcher Model-Klasse du zu tun hast.
die Tags werden via before_filter im Application-Controller gezogen. Von daher könnte ich der Methode, die die Liste der Tags zusammenbaut, den Namen des Controllers via controller.controller_name als Parameter mit auf den Weg geben. Derzeit macht dieser Filter nichts anderes wie: @tags = Tag.find(:all) > > Hintergrund ist, das ich die Tags, die per > > acts_as_tagable_on_steroids zur Verfügung gestellt werden, > > kontextsensitiv machen möchte: bei Controller A sollen nur die Tags > > A* gezogen werden, bei Controller B nur die Tags B* > > > > Ich fand etwas wie: > > Tagging.find_all_by_taggable_type(ActiveRecord::Base.send > > (:class_name_of_active_record_descendant, self).to_s) > > Warum nicht einfach so > > class A < ActiveRecord::Base > > def self.taggings > Tagging.find_all_by_taggable_type(self.name) > end > > # bzw. > > def self.tags > Tagging.find_all_by_taggable_type(self.name, > :include => :tag).map(&:tag) > end > end Das ist verständlich(er), aber wie löse ich vom String (also dem Controllernamen als Parameter) zum Model auf? Das ist mir nicht klar und das scheint auch nicht trivial zu sein, denn prinzipiell kann man im Controller ja jedes beliebige Model laden. Gruß, Torsten _______________________________________________ rubyonrails-ug mailing list [email protected] http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
