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