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