Forum: Ruby on Rails Global Method Declaration?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Brent J. (Guest)
on 2006-03-30 20:07
(Received via mailing list)
Is there a place where I can put a method that can be accessed in both
views and controllers?

Here's the situation, maybe someone can suggest a better way to go about
this:

I created my own custom login system with email verification and user
roles (basically, I tinkered around with SaltedHashLoginGenerator
until I finally gave up and wrote my own).  One role, of course, is an
admin role.  Users with this designation can add headline articles,
new employee bios, etc.

All methods in a controller may or may not need the admin role so I
cant use a before_filter in all of them.  So I created an is_admin
method and put it in the application controller.  Works great.
Problem is, there are times when I need to do an is_admin check inside
a view.

So where can I place is_admin so both the view and controller can call
it?  Is there a better way of doing this?

Thanks,

- Brent
James L. (Guest)
on 2006-03-30 20:19
(Received via mailing list)
On 3/30/06, Brent J. <removed_email_address@domain.invalid> wrote:
> All methods in a controller may or may not need the admin role so I
> cant use a before_filter in all of them.

I know this doesn't answer your original question, but did you realize
that you could do this?

before_filter :is_admin, :only => [ :edit, :delete ]

-- OR --

before_filter :is_admin, :except => [ :show, :list ]


-- James
Brent J. (Guest)
on 2006-03-31 00:17
(Received via mailing list)
It does solve the problem, and is a much more elegant solution than
dealing with it in the view!  Thanks for the info.

- Brent
Tom D. (Guest)
on 2006-03-31 04:43
(Received via mailing list)
Hi Brent,

The before filter is the way to go for this scenario.  However, if you
find that some views are shared by both members and you only want to
show admin links to admins, you will still need to access the is_admin
method in your views.  The good news is it is very simple to do.  From
within your application controller just add:

helper_method :is_admin

And it will be available to both.


-- Tom D.

http://blog.atomgiant.com
http://gifthat.com
Brent J. (Guest)
on 2006-03-31 05:01
(Received via mailing list)
Awesome thanks.  This is definitely true, some of the views are shared
by registered, unregistered and admin users.  The difference is that
the admin user gets to see links like "edit" or "delete" that the
normal user does not.

- Brent
andre hartawan (Guest)
on 2006-03-31 05:34
(Received via mailing list)
dear friend,

I have installed radRails V0.6.1
When i tried to press ctrl+backspace in editor ,the
error
come up "Ruby Content Assist did not complete
normaly.please see the log for moreinformation."

what sould i do to solve this error ?

thanks


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
This topic is locked and can not be replied to.