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

Reply via email to