gpt4 book ai didi

ruby-on-rails - ApplicationController 中具有参数值的类变量

转载 作者:数据小太阳 更新时间:2023-10-29 07:26:18 27 4
gpt4 key购买 nike

在应用程序 Controller 中,我有几个方法可以处理请求的 Controller 和操作名称。

为了遵循 DRY 原则,我想用这些参数定义共享变量。

class ApplicationController < ActionController::Base
@@requested_action = params[:action]
@@requested_controller = params[:controller]
end

但我收到错误:未定义局部变量或方法“params” for ApplicationController:Class

为什么我不能这样做,我怎样才能实现我的目标?

最佳答案

我相信您已经拥有 Rails 为此目的定义的 controller_nameaction_name 变量。

如果你想按照你的方式来做,你必须将它定义为一个前置过滤器,因为参数只有在发出请求后才会存在。你可以这样做

class ApplicationController < ActionController::Base
before_filter :set_action_and_controller

def set_action_and_controller
@controller_name = params[:controller]
@action_name = params[:action]
end
end

您可以通过@controller_name 和@action_name 访问它们。但是 controller_nameaction_name 已经在 Rails 中定义了。您可以直接使用它们。

关于ruby-on-rails - ApplicationController 中具有参数值的类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6520042/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com