Override list methods for entire app

Hello, i have a web that lets users login and their login information is stored in session. Now, I want to be able to display records from few tables based on the username that they entered. So, all these tables have user_id(corresponds to user_id in the session and id in user table) and I want to display the rows only that are for the user that is currently logged in with an option to display all the records if needed. What I am trying to do is override list globally, but somehow when I define it in application.rb as def list end the specific controllers don't pick the list code, why?

Also, is there better way to handle this kind of scenario? Thanks in advance.

have you removed the list function from the specific controllers?

let's see your application.rb and one of the specific controllers.

class ApplicationController < ActionController::Base   include AuthenticatedSystem   session :session_key => '_adam_session_id'   before_filter :login_required, :except => 'login'

  ActiveScaffold.set_defaults do |config|     config.dhtml_history = false     config.security.current_user_method = :current_login   end

  def list      render :layout => false   end

end class HomeCaseController < ApplicationController   active_scaffold :home_case do |config|   end

  def conditions_for_collection     @condition = "login_id = #{session[:login]}"   end

end As you can tell at this point I have conditions for collection on the specific controller level, but I want to crate a general list in application.rb and possibly do conditioning there or somewhere in the helper if thats better?

julian wrote:

I think the active_scaffold call is probably redefining the list method (though I've never used active scaffold). You might want to put your list method in a module or something and then include it after the active_scaffold call. It depends on what you want to do. If you still need the active_scaffold list method, then you might want to alias_method_chain or something... It all depends on the specific situation and on what active_scaffold is actually doing (which I have no idea about).

maybe add this to your ActiveScaffold config -> config.actions.exclude :list

e.g.

ActiveScaffold.set_defaults do |config|   config.dhtml_history = false   config.security.current_user_method = :current_login   config.actions.exclude :list end