Rails 3.1 更改控制器中的 URL

发布于 2024-12-20 13:24:50 字数 341 浏览 0 评论 0原文

如何更改控制器中视图的 URL。
在我的控制器中,我生成了一个要显示的 ID
渲染视图时浏览器的 URL 中。

例如,当我在浏览器中输入 / 时,它应该重定向我
到/测试/1。 ID由控制器随机生成。
因此,当我第二次访问 / 时,它可以将我重定向到 /test/3。

我尝试在routes.rb 文件中进行匹配路线。
但我找不到解决办法。

路线.rb

get 'test/run'
root to: 'test#run'

match '/test/:id', to: 'test#run'

How do I Change the URL for the view in the controller.
In my controller I generate an ID which I want to display
in the URL of the browser when the view is rendered.

For example, when I enter / in my browser, it should redirect me
to /test/1. The ID is generated randomly by the controller.
So when I access / the 2nd time it could redirect me to /test/3.

I tried to do a match route in my routes.rb file.
But I couldn't find a solution.

routes.rb

get 'test/run'
root to: 'test#run'

match '/test/:id', to: 'test#run'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生来就爱笑 2024-12-27 13:24:50

怎么样:

class TestController
  def show
    ...
  end

  def run
    redirect_to Test.random
  end
end

当然,您必须为测试模型编写random范围。
您可能会发现这个问题也很有帮助 - Random record in ActiveRecord

PS我不确定Test 对于你的模型来说是一个很好的名字。它可能已经被 ruby​​ 或 Rails 使用。

How about that:

class TestController
  def show
    ...
  end

  def run
    redirect_to Test.random
  end
end

Of course, you have to write random scope for your Test model.
You may find helpful this question also - Random record in ActiveRecord

P.S. I'm not sure that the Test is a good name for your model. It could be already used by ruby or rails.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文