查看为页面提供服务的轨道控制器/型号的方法



这可能是一个有点奇怪的问题,但我想知道是否有人知道Rails快捷方式/系统变量或其他什么东西,可以让我跟踪哪个控制器正在为页面提供服务,该控制器调用哪个模型。很明显,我正在构建这个应用程序,所以我知道,但我想做一个更通用的插件,能够追溯到这些数据,而无需手动处理。

有什么简单的捷径吗?

控制器和操作在params中定义为params[:controller]params[:action],但没有"模型"的占位符,因为控制器方法可以创建许多模型实例。

如果你想的话,你可能想创建一些辅助方法来提供帮助:

def request_controller
  params[:controller]
end
def request_action
  params[:action]
end
def request_model
  @request_model
end
def request_model=(value)
  @request_model = value
end

在为请求提供服务时加载模型时,您必须显式设置模型:

@user = User.find(params[:id])
self.request_model = @user

我知道有很多方法:

首先,您可以执行rake routes并查看路线列表。

其次,您可以将<%= "#{controller_name}/#{action_name}" %>放在application.html.erb中,然后查看视图以查看它的内容。如果你把它放在最底部,你总是会在页面底部得到这些信息。

可以通过params散列访问控制器:params[:controller]。然而,实际上并没有办法让控制器使用模型,因为任何控制器和任何模型之间都没有必要的相关性。如果您有一个模型的实例,您可以检查object.class来获取模型的类名。

相关内容

  • 没有找到相关文章

最新更新