【问题标题】:Bad route and redirect loop on rails错误的路线和轨道上的重定向循环
【发布时间】:2014-03-04 07:01:46
【问题描述】:

我是 Rails 新手,但我设法创建了一个应用程序,它从表单中获取值,使用 javascript 进行一些计算并创建一个类似的字符串

127.0.0.1:3000/var1/var2/var3/var4

然后重定向到该网址。

现在,我想获取这些变量并在服务器端执行另一个计算,然后将结果存储在数据库中。

现在,我有这样的 route.rb

根“mcc#form” 得到“进程/:var1/:var2/:var3/:var4”=>“mcc#process”

和我的控制器 mcc_controller.rb 一样

class MccController < ApplicationController
    def form
    end

    def process
        #redirect_to "127.0.0.1:3000/", :status => 302
    end
end

现在,如果这样的让我得到一个错误

wrong number of arguments calling `process` (1 for 0)

即使我要求 127.0.0.1/(这应该给我 form.html.erb 视图),并且如果我在 routes.rb 上评论第二行,我仍然会收到该错误。

进行另一个实验,我在 mcc_controller.rb 上注释了“进程”方法,并让 routes.rb 上的第二行没有注释,一切正常,但显然,调用 127.0.0.1:3000/var1/var2/ var3/var4 不再起作用了。

在“处理”方法中,我有一个重定向,它应该返回主页以进行另一个计算。然后我写我的“过程”方法如下

class ArenaController < ApplicationController
    def form
    end

    def process(var)
        redirect_to "127.0.0.1:3000/", :status => 302
    end
end

即使我转到 127.0.0.1,我也会得到一个“重定向循环”。

所以,我不明白为什么是那个循环。只有当我要求 127.0.0.1/var1/var2/var3/var4 时才应该调用“进程”方法,而不是在我要求根路由时调用。

我希望我是清楚的。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我解决了糟糕的路由和循环问题。似乎“进程”是某种保留字,所以我将其更改为“qrocess”,现在它可以工作了。最好的部分是网址是相同的! 另外,在

    class ArenaController < ApplicationController
        def form
        end
    
        def process(var)
            redirect_to "127.0.0.1:3000/", :status => 302
        end
    end
    

    我使用 process(var) 来避免“参数数量错误”,但现在似乎没有必要了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 2021-12-17
      • 2015-07-09
      • 1970-01-01
      相关资源
      最近更新 更多