Wednesday, November 23, 2011

[Rails] setting a variable only one time.

In my application_controller I have:

before_filter :set_default_role

layout :specify_layout

private
def specify_layout
if @current_role == :intra_guest
"intranet"
elsif @current_role == :inter_guest
"internet"
else
#(devise_controller? || user_signed_in?)
"application"
end
end

def set_default_role
if request.path == "/intraOp"
@current_role = :intra_guest
elsif request.path == "/interOp"
@current_role = :inter_guest
else
@current_role = current_user.try(:role)
end
end

When I call http://mysite/intraOp....@current_role is set to
:intra_guest but if I click to a link, say http://mysite/other, the
@current_role in not :intra_guest anymore because the path is not
/intraOp and before_filter is run every time before an action.
I think the solution is to run set_default_role only one at
application start and not before every controller action.
Advices?

--
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate