我一直在我的一个项目中尝试 Padrino 框架,但有一件事让我非常恼火。例如,我想使用 OmniAuth 实现一个用户注册过程,并希望将我的请求处理程序(控制器的操作)分解为单独的方法,如下所示:
获取 ":provider/callback" 做 @user = find_the_user_by_oauth(请求) create_user 除非@user store_user_in_session 结尾 def find_the_user_by_oauth(请求) #... 结尾 def store_user_in_session 会话[:user_id] = @user.id 结尾
我知道将逻辑推送到模型层会更好,但我的问题是,我如何将控制器逻辑分解为分离的方法并在它们之间共享信息(例如使用实例变量)。在 Rails 中,我在控制器的私有范围内创建了这些方法,但在这里我应该扩展 Application 类,因为它会为前面的代码抛出未定义的方法异常。我尝试了 Helpers,但 helpers 不知道实例变量,所以你应该每次都传递变量。
在Padrino中使我的控制器动作干净的好方法是什么?