确定从视图传递到控制器的参数源自何处

时间:2011-05-07 18:28:35

标签: ruby-on-rails ruby ruby-on-rails-3

在我的ApplicationController父类中,我有一个名为dig的动作方法,它通过params[]类似哈希的结构读取参数。我希望有任何视图通过link_to辅助函数与任何控制器建立链接,并使用dig操作首先调用父操作。我希望能够确定参数化信息代表什么(它的类型),或者创建链接的内容(前一个或原始视图)。

有关最佳方法的任何想法吗?有没有办法通过link_to传递对象,然后使用其元数据?如果是这样,这会破坏轨道范式吗?

2 个答案:

答案 0 :(得分:1)

如果您正在寻找代码中的内容,Ruby的caller方法是发生异常时发生的堆栈转储的基础。您可以点击它并询问调用链在任何时候是什么。

如果您想从外部网站跟踪来自浏览器的传入请求,则会变得更加困难,因为浏览器不再希望显示最后一个位置。如果浏览器被重定向到您自己的站点,您可以使用会话或cookie来跟踪其移动。

答案 1 :(得分:1)

我认为要拥有你需要做的原始链接是这样的:

request.env['HTTP_REFERER']

这将获取发起操作的URL,从那里您可以处理URL以获取控制器,操作和ID。希望这有帮助!