ruby使用会话进行restful请求和redirect_to

时间:2013-01-26 23:55:51

标签: ruby session rest redirect

我正在努力设置我的请求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已经识别出这个请求永远不会完成...是有更好的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

为什么不在Ruby中使用||=运算符。这样,您就不需要代码中发生的if-else惨败。

尝试类似:

params[:p1] ||= session[:p1]

然而,当你说你想让你的行动更加RESTful时,我不太清楚你的意思?如果您使用更多的见解和背景更新您的问题,我会尝试更新我的答案,这将为我们提供更多背景信息。