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 -~----------~----~----~----~------~----~------~--~---

