<div id="content"> <%= debug NavBar.all_modules %> Now it gives
uninitialized constant ActionView::Base::CompiledTemplates::NavBar Extracted source (around line #2): 1: <div id="content"> 2: <%= debug NavBar.all_modules %> On Jun 16, 5:44 am, Narendra sisodiya <[email protected]> wrote: > ok let me explain you in your code > > following is your code > > 1: <div id="content"> > 2: <%= debug navbar.all_modules %> > > now the navbar is undefined , please replace navbar to *Navbar* > capital *N*that is your Model name > > see in this line > class *Navbar *< ActiveRecord::Base > > now try this and let me know > > ~N A R E N > > On Tue, Jun 16, 2009 at 4:04 PM, Ritvvij <[email protected]> wrote: > > > This is like a reference table which doesnt need a controller :| > > And it is a reftable for what links to display on screen. > > > This is what I did finally. > > > class Navbar < ActiveRecord::Base > > def self.all_modules > > NavBar.find (:display_name, :url, :conditions => {:name => > > 'module_bar'}, :order => 'sort_order') > > end > > def self.associated_quick_links (selected_module) > > NavBar.find (:display_name, :url, :default_link, :conditions => > > {:name => 'quick_links_bar', :group_by_module => > > selected_module}, :order => 'sort_order') > > end > > def self.associated_module (selected_quick_link) > > NavBar.find (:group_by_module, :conditions => {:name => > > 'quick_links_bar', :display_name => selected_quick_links}) > > end > > end > > > And I am still getting > > undefined local variable or method `navbar' for #<ActionView::Base: > > 0x4be1140> > > Extracted source (around line #2): > > 1: <div id="content"> > > 2: <%= debug navbar.all_modules %> > > > Please help > > > On Jun 16, 1:04 am, Narendra sisodiya <[email protected]> > > wrote: > > > agree with Nayak, > > > > If you didn't create the object *navbar* than it will through the > > exception > > > that is in your case. > > > > or define static methods like I did and use directly by model name. > > > > Avoid direct model's method calls in view , use helper file or controller > > as > > > suggested by Nayak. > > > > ~N A R E N > > > > On Tue, Jun 16, 2009 at 11:08 AM, NAYAK <[email protected]> wrote: > > > > Hi > > > > > QUESTION --- I want to access these methods from views directly. When > > > > I do <%= debug navbar.all_modules %> it fails. It cannot find the > > > > navbar. > > > > > This will work fine only if you have navbar as an object of your Navbar > > > > model, confirm whether you have done the same. > > > > As I observe that your method in model does not have anything related > > to > > > > specific object of the class, you can have it as a class method by > > defining > > > > it as self.all_modules. This can be directly used by Navbar.all_modules > > > > > Note: One should not use model methods in views directly. Use > > controller > > > > objects or helpers for the same. > > > > > - Nayak > > > > > On Tue, Jun 16, 2009 at 10:55 AM, Narendra sisodiya < > > > > [email protected]> wrote: > > > > >> can you tell me what you did exactly ? > > > > >> On Tue, Jun 16, 2009 at 9:43 AM, Ritvvij <[email protected]> wrote: > > > > >>> Did what you said.. > > > >>> Now getting error --- "undefined local variable or method `navbar' > > for > > > >>> #<ActionView::Base:0x4dfce0c>" > > > > >>> On Jun 15, 10:54 pm, Narendra sisodiya <[email protected]> > > > >>> wrote: > > > >>> > For accessing model method from view , you can define self methods > > in > > > >>> model > > > >>> > and than directly access by ModelName.methodName > > > > >>> > For example > > > > >>> > class Navbar < ActiveRecord::Base > > > >>> > def self.all_modules > > > >>> > Ur stuff > > > >>> > end > > > > >>> > end > > > > >>> > in view > > > >>> > <% Navbar.all_modules %> > > > > >>> > ~ > > > >>> > N A R E N > > > > >>> > On Tue, Jun 16, 2009 at 9:02 AM, Ritvvij <[email protected]> > > wrote: > > > > >>> > > Hi > > > >>> > > I have a model called navbar. It does not have a view or a > > controller > > > >>> > > defined. > > > > >>> > > create_table :navbars do |t| > > > >>> > > t.string :name > > > >>> > > t.string :display_name > > > >>> > > t.string :url > > > >>> > > t.string :group_by_module > > > >>> > > t.boolean :default_link > > > >>> > > t.integer :sort_order > > > > >>> > > And in the model I have written few methods. > > > > >>> > > class Navbar < ActiveRecord::Base > > > >>> > > def all_modules > > > >>> > > NavBar.find (:display_name, :url, :conditions => {:name => > > > >>> > > 'module_bar'}, :order => 'sort_order') > > > >>> > > end > > > >>> > > def associated_quick_links (selected_module) > > > >>> > > NavBar.find (:display_name, :url, :default_link, :conditions => > > > >>> > > {:name => 'quick_links_bar', :group_by_module => > > > >>> > > selected_module}, :order => 'sort_order') > > > >>> > > end > > > >>> > > def associated_module (selected_quick_link) > > > >>> > > NavBar.find (:group_by_module, :conditions => {:name => > > > >>> > > 'quick_links_bar', :display_name => selected_quick_links}) > > > >>> > > end > > > >>> > > end > > > > >>> > > QUESTION --- I want to access these methods from views directly. > > When > > > >>> > > I do <%= debug navbar.all_modules %> it fails. It cannot find the > > > >>> > > navbar. > > > > >>> > > Can someone please guide me? > > > >>> > > Thanks in advance > > > > > -- > > > > - NAYAK --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

