Before_filter: how to give :except more than 1 value?


#1

Hi all

I have the following class:

class MemberController < ApplicationController
before_filter :authorize, :except => :index

def index

end

Now I want to give the before_filter more than one :except argument. I
tried :except => {:index, :login}, but this didn’t work.

How can i accomplish this?

Thanks a lot and have a nice day,
Josh


#2

try array.
before_filter :authorize, :except =>[:index, :except]


#3

Maiha wrote:

try array.
before_filter :authorize, :except =>[:index, :except]

Thank you. Is %w{ index, login } OK, too?


#4

Try putting it in an array rather than a hash, e.g.

before_filter :authorize, :except => [:index, :login]

See under ‘Filter Conditions’:
http://api.rubyonrails.com/classes/ActionController/Filters/ClassMethods.html#M000127

csn

— Joshua M. removed_email_address@domain.invalid wrote:


Posted via http://www.ruby-forum.com/.


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


#5

Thanks a lot.

But what exactly creates the array now and what the hash?

%w{} should create an array, right?


#6

Joshua M. <forum@…> writes:

before_filter :authorize, :except => :index
before_filter :authorize, :except => [:index, :login]

-damon
http://damonclinkscales.com/


#7

And note that:

%w{index login}

creates this array:

[‘index’, ‘login’]

and this:

[:index, :login]

creates an array of symbols rather than an array of strings.

That should not be a problem, however, because send() accepts strings
too.


#8

On Jan 11, 2006, at 4:45 PM, Joshua M. wrote:

Thanks a lot.

But what exactly creates the array now and what the hash?

The bare curlies create a hash, braces create an array.

%w{} should create an array, right?

%w{index login} will also create an array, but be careful not to
do %w{index, login} with the comma because then the comma becomes
part of the first array element.

e.g.
irb(main):001:0> a1 = [‘index’,‘login’]
=> [“index”, “login”]
irb(main):002:0> a2 = %w{index login}
=> [“index”, “login”]
irb(main):003:0> a3 = %w{index, login}
=> [“index,”, “login”]

-dudley