我正在努力设置我的请求RESTful但我不认为我做得很好..这就是我的拥有,我想始终保持params p1和p2从视图中是RESTful:
在我的控制器中:
def index
#if can't find p1 then grab from session and re-direct to make it a RESTful request
#if not in session then it's a brand new call
if params[:p1] == nil && session[:p1] != nil
params[:p1] = session[:p1]
redirect_to :action => "index", params[:p1] => session[:p1]
else
session[:p1] = params[:p1]
end
... same as above but with p2 ...
我得到的错误不是两个重定向可能在同一个动作中发生...所以我尝试将它组合但是它继续循环,页面会说Ruby已经识别出这个请求永远不会完成...是有更好的方法来实现这一目标吗?
答案 0 :(得分:0)
为什么不在Ruby中使用||=
运算符。这样,您就不需要代码中发生的if-else
惨败。
尝试类似:
params[:p1] ||= session[:p1]
然而,当你说你想让你的行动更加RESTful时,我不太清楚你的意思?如果您使用更多的见解和背景更新您的问题,我会尝试更新我的答案,这将为我们提供更多背景信息。