Rails从gem访问params和session

时间:2014-12-09 17:27:00

标签: ruby-on-rails ruby gem rubygems params

我正在构建一个需要访问GET参数和当前会话的gem。

Module MyGem
    class MyClass
        def write_to_session
            session[:user_id] = nil if params[:logout]
        end
    end
end

上面的代码不起作用,因为会话和参数只能在控制器中访问。 在另一个类似的问题中,有人建议将params传递给班级

Module MyGem
    class MyClass
        def initialize(params)
            @params = params
        end

        def write_to_session
            if @params[:param]
                #Do stuff...
            end
        end
    end

但是我想知道是否可以在没有传递这些变量的情况下使用这些变量     端

1 个答案:

答案 0 :(得分:0)

在类中操作会话很好 - 它只是另一个存储位置。最好是抽象它而不是弄乱控制器代码。

只需使用会话初始化课程

def initialize(session, params)

然后做你需要的一切