ruby-on-rails – 如何在控制器方法之间传递值

发布时间:2020-01-14 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在控制器方法之间传递值脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法在控制器方法之间共享数组并存储它直到页面重新加载或调用另一个控制器的方法?有些方法应该更改数组.

解决方法

如果要在同一个控制器实例的方法之间共享值,那么,
声明一个实例变量:
class BarsController < UsersController

  before_filter :init_foo_list

  def method1
    render :method2
  end 

  def method2
    @foo_list.each do | item|
      # do something
   end
  end

  def init_foo_list
    @foo_list ||= ['Money','Animals','Ummagumma']
  end

end

如果要在会话中跨两个控制器共享值,则:

class BarsController < UsersController

  before_filter :init_foo_list

  def method1
    render :controller => "FoosController",:action => "method2"
  end 

  def init_foo_list
    params[:shared_param__] ||= ['Money','Ummagumma']
  end    
end

class FoosController < UsersController

  def method2
    params[:shared_param__].each do | item|
      # do something
   end
  end
end

为共享参数键指定唯一名称,以避免与现有键冲突.

其他选项是将共享数组存储在会话广告中,在最终渲染之前将其删除.

总结

以上是脚本之家为你收集整理的ruby-on-rails – 如何在控制器方法之间传递值全部内容,希望文章能够帮你解决ruby-on-rails – 如何在控制器方法之间传递值所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。

脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!

标签: