识别ApplicationController(RoR)中方法的调用者

phr*_*kre 0 ruby ruby-on-rails

我的ApplicationController中有一个方法,它是before_filter的一部分.如何识别哪个控制器正在调用该方法,我可以将参数传递给它吗?

大概是最糟糕的情况,我可以使用控制器名称和值创建一个新对象,然后使用NewObject.find(:first,:conditions => ['controller_name =?',controller_name]直接在before_filter方法中调用它,但是闻起来很糟糕.

所以我对创意持开放态度.提前致谢.

伪短代码:

class ApplicationController < ActionController::Base
    before_filter :someMethod
    ....
    def someMethod
        Do stuff
    end


class SomeController < ApplicationController
    # presumably the before_filter runs here
    @someValueIWantToPass = some.value
    ...
Run Code Online (Sandbox Code Playgroud)

Mis*_*ced 10

params[:controller]params[:action]包含所请求的控制器和操作,并可从过滤器内部获得.