【问题标题】:where are the auto generated routes in rails scaffolding?rails 脚手架中自动生成的路线在哪里?
【发布时间】:2014-05-21 15:58:25
【问题描述】:

好吧,我开始学习 Rails,到目前为止,我真的被自动生成的多少以及在我不知道的幕后发生的事情所吸引。我为帖子生成了脚手架。它自动创建路由允许我编辑和查看帖子(/posts、/posts/:id/edit、/posts/:id/show....等)当我进入 config/routes.rb 时,我看到绝对没有提到这些路线。即使他们工作。这些路线在哪里?如果控制器的路由不在 routes.rb 中,我可以在哪里添加自定义路由?

【问题讨论】:

  • 如果您喜欢自己编写所有东西,您可能会喜欢 Sinatra。 sinatrarb.com
  • 他们应该在那里。您确定要检查您为其创建脚手架的同一项目的路线吗? (顺便说一句,你在找resources :posts
  • 我看到资源:posts,它仍然没有说明具体路线在哪里
  • @JakeSchievink - 这些是你的路线。 resources 是一种生成您需要的所有 RESTful 路径的方法。 Rails 中的路由是我在使用 Rails 的前 3 个月讨厌它的原因。阅读:guides.rubyonrails.org/…
  • Rails 确实有很多魔力,起初我很难知道发生了什么。这也是造成重大安全漏洞的魔法(哦,rails 为我的普通 ole 控制器解析 XML 请求,并执行嵌入式 YAML 代码标注。它在哪里列出?!)

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:
  1. 当您运行rails generate scaffold post 时,rails 将生成模型、控制器、测试、路由、样式表等。 Rails 告诉你它刚刚生成了哪些文件,你可以在终端中看到它。 在 routes.rb 中会有一行 resources :post,这是在控制器中生成的所有 RESTful 操作的简写。

  2. 您可以在 routes.rb 文件中声明自定义路由。即:

    get 'my_path'=> 'my_controller#my_action'

一般来说,Rails 可以为您做很多事情,并且您可以避免一遍又一遍地重复默认行为。但是你也可以自己做大部分事情,不用 Rails 魔法。 不要使用脚手架,只需运行rails generate controller controller_name action1 action2 (..)。你最终会得到一个控制器,没有自动视图,没有自动模型等。 或者您可以自己创建所有文件并注册您的组件。 Rails Guides 是了解魔法的良好起点。

【讨论】:

    猜你喜欢
    • 2011-10-17
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多