gpt4 book ai didi

routes - 导轨3.0 : Adding new action to a controller

转载 作者:行者123 更新时间:2023-12-02 00:45:04 26 4
gpt4 key购买 nike

在 Rails 3.0 之前,向 Controller 添加新操作很容易。

您只需向 Controller 类(称为 mycontroller)添加一个新方法 foobar 即可。在该 Controller 的 View 文件夹中添加一个 html 文件,foobar.html.erb

然后,如果您将浏览器指向 .../mycontroller/foobar 一切正常。

但是,在 Rails 3.0 中,当我如上所述添加新操作时,出现以下错误:

No route matches "/mycontroller/foobar"

Rails 3.0 发生了什么变化?我做错了什么?

最佳答案

将其添加到routes.rb:

get 'mycontroller/foobar'

这将使用 HTTP GET 将 URL http://mysite.com/foobar 路由到 foobar 操作。

更多信息:

  1. 请注意,在 Controller 中定义 def foobar 并不是严格要求(除非您需要在显示 View 之前在 foobar 中执行某些操作)-但 View 必须存在。换句话说,即使 Controller 中不存在def foobar方法, View foobar.html.erb仍然会被渲染。

  2. 这里是 good overview of routes in Rails 3 .

  3. 此外,如果您还不知道,您可以列出您的应用知道的关于使用rake 路线的所有路线。因此,如果 rake paths 的输出未列出某些 Controller /操作的路由,则会出现“无路由匹配”错误。

关于routes - 导轨3.0 : Adding new action to a controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4477061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com