假设有一个标准的books_controller,我需要修改索引方法。如果params [:value]为nil,我需要为其分配not_nil值,然后重新加载同一页面。我在索引方法中做的是
redirect = params[:value].nil?
params[:value] ||= some_value_which_is_not_nil
redirect_to books_path if redirect
问题是重定向后,params [:value]再次为零!如何将params变量传递给redirect_to方法,还是有其他方法来存储该值?
答案 0 :(得分:0)
params
哈希不起作用。 HTTP是无状态的 - 分配不会在请求中持续存在。
这意味着,每次发出请求时,都会从请求中的GET / POST参数填充params
哈希值。如果要重定向到同一页面并保持该参数,则必须将其作为GET参数传递。
redirect_to books_path(:value => some_value_which_is_not_nil) if redirect
答案 1 :(得分:0)
我不确定这是否是您要查找的内容,但您可以将参数传递给path
方法。
books_path(:value => 1)
会产生/books?value=1
。
答案 2 :(得分:0)
def index
## RELOAD same page if params value is nil
params[:value] || redirect_to books_path(:value => "some_value_which_is_not_nil")
# Do my own processing!
end
答案 3 :(得分:0)
如果你将nil值设置为某个值,它应该在你要重新加载的同一个动作中......为什么不继续使用你设置的值进行处理而不重新加载?
我看不出你需要重新加载动作。