加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails控制器中的持久参数

发布时间:2020-12-17 04:15:21 所属栏目:百科 来源:网络整理
导读:有没有办法在Rails控制器中保留(保留)参数?它应该传递给每个动作,然后传递给每个视图和每个链接. 示例情况: 我有实体A及其控制器.此外,我有另一个依赖于A的实体B.我需要经常访问“父”A实体,所以我想让它仍然像 HTTP:// SOME_URL / b_controller / b_acti
有没有办法在Rails控制器中保留(保留)参数?它应该传递给每个动作,然后传递给每个视图和每个链接.

示例情况:
我有实体A及其控制器.此外,我有另一个依赖于A的实体B.我需要经常访问“父”A实体,所以我想让它仍然像

HTTP:// SOME_URL / b_controller / b_action a_entity = XYZ

解决方法

您应该可以使用before_filter和default_url_options的组合从控制器执行所有操作:
class MyController < ApplicationController

  before_filter :set_a_entity

  def set_a_entity
    @a_entity = params['a_entity']
    # or @a_entity = Entity.find(params['a_entity'])
  end

  # Rails 3
  def url_options
    {:a_entity => @a_entity}.merge(super)
  end

  # Rails 2
  def default_url_options
    {:a_entity => @entity}
  end

end

这并没有解决设置@a_entity初始值的问题,但这可以从任何地方(视图,控制器等)完成.

如果您希望在多个控制器中传递此参数,则可以替换MyController< ApplicationController与ApplicationController< ActionController :: Base,它应该也可以工作. 希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读