Rails 控制器中的持久参数
有什么方法可以在 Rails 控制器中保留(保留)参数吗?它应该传递到每个操作,然后传递到每个视图和每个链接。
示例情况: 我有实体 A 及其控制器。此外,我还有另一个依赖于 A 的实体 B。我需要经常访问“父”A 实体,因此我希望将其保留为
http://some_url/b_controller/b_action?a_entity =xyz
is there any way to persist (preserve) parameters in Rails controller? It should be passed to every action, then to every view and every link.
Example situation:
I have entity A with its controller. Besides, I have another entity B which is dependent on A. I need to access the "parent" A entity very often, so I'd like to have it still as
http://some_url/b_controller/b_action?a_entity=xyz
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该能够使用
before_filter
和default_url_options
的组合从控制器执行所有操作:这并不能解决设置
@ 初始值的问题a_entity
,但这可以从任何地方(视图、控制器等)完成。如果您希望此参数在多个控制器中传递,您可以替换
MyController < ApplicationController
与ApplicationController < ActionController::Base
它应该也能工作。希望这有帮助。
You should be able to do everything from your controller, using a combination of
before_filter
anddefault_url_options
:This doesn't solve the problem of setting the initial value of
@a_entity
, but this can be done from anywhere (view, controller, etc).If you want this parameter passed around in multiple controllers, you can replace
MyController < ApplicationController
withApplicationController < ActionController::Base
and it should work as well.Hope this helps.
那为什么不把它放在会话参数中呢?
这样您也可以在所有其他控制器中访问它,直到您清除它或它过期。
更多信息在这里:
http://api.rubyonrails.org/classes/ActionController/Base.html
why not put it in a session parameter then?
that way you can access it in all your other controllers too until you clear it or it expires.
more info here:
http://api.rubyonrails.org/classes/ActionController/Base.html