问题描述
controller a 的action a中调用controller b的action bparams不共享么class controllerA def actiona b = controllerB.new b.actionb endend在actionb 中不能用actiona中的params值吗比如说actiona中有params[:name]=ouwind在actionb中就没params这个hash了为啥
解决方案
官网还有一个相关的解释,也可以参考http://weblog.rubyonrails.org/2006/4/25/use-params-not-params
解决方案二:
为什么params这个变量不能在不同的action中共享,如果,你想得到这个问题的原因,而不只是想停留在明白params代表传给一个action的参数 session代表一个会话那么,你应该庆幸因为,我们在用Rails我的意思是说,你实际再问rails是如何实现params不在action间共享参数的。首先,道理上讲,一个方法应该有对应的参数,没有理由把其他方法的参数,让这个方法调用。其次,Rails只是一个开源的程序,程序都是程序员的意志实现的。比如,DHH对于外键约束的态度最后,Rails是开源的,弄明白怎么工作的最好办法是读源代码,都说是提高的好办法,不妨试试看吧 360 # Holds a hash of all the GET, POST, and Url parameters passed to the action. Accessed like <tt>params["post_id"]</tt> 361 # to get the post_id. No type casts are made, so all values are returned as strings. 362 attr_internal :params我还没有那么好奇,所以简单看了一眼定义,没有完全往下跟细节实现。简单看,是个内部实例变量