代码之家  ›  专栏  ›  技术社区  ›  user3408293

更好地理解铁轨中的脚手架

  •  -1
  • user3408293  · 技术社区  · 11 年前

    我读过铁路指南,但有些事情我自己做的时候还是不明白。

    例如,当我访问本地主机上的显示视图时,为什么会出现错误?脚手架在我的控制器中创建了一个显示动作,该动作是空的,并且是一个视图,但仍然会收到错误消息。

    索引也会发生类似的情况。

    脚手架的目的不是为了帮助你完成这一切吗?我假设如果我发了几篇帖子,索引操作会将我带到所有帖子的索引中,但帖子本身并没有列出所有帖子。脚手架背后的逻辑是什么?

    编辑::::

    这是我收到的错误消息:

    ActiveRecord::RecordNotFound in ExperimentsController#show
    Couldn't find Experiment with id=index
    

    当我访问时会发生这种情况 http://localhost:3000/experiments/index

    2 回复  |  直到 11 年前
        1
  •  0
  •   Kirti Thorat    11 年前

    您访问的路线不正确。 要访问索引页:您需要url http://localhost:3000/experiments

    指定url时: http://localhost:3000/experiments/index ,Rails会将其与 show page (如下所示): /experiments/:id

    如果仔细阅读错误:

    ActiveRecord::RecordNotFound in ExperimentsController#show Couldn't find Experiment with id=index

    Rails将url映射到 show 行动,并试图找到一个实验 id=index 这显然是不存在的,你会得到一个错误。

    rake routes 在命令提示符下,您将看到为资源创建的路由 experiment 如下所示:

               /experiments             index      display a list of all experiments
    GET        /experiments/new         new        return an HTML form for creating a new experiment
    POST       /experiments             create     create a new experiment
    GET        /experiments/:id         show       display a specific experiment
    GET        /experiments/:id/edit    edit       returns an HTML form for editing an experiments
    PATCH/PUT  /experiments/:id         update     update a specific experiment
    DELETE     /experiments/:id         destroy    delete a specific experiment
    

    您可以使用上面显示的路径访问特定路线。 代替 :id 与现有的 实验 记录 id 属性值。

    例如:

    查看id为的实验 5 参观 http://localhost:3000/experiments/5

    注意:我强烈建议您通过 Rails Routing 指导并更好地了解路由的工作原理。

        2
  •  0
  •   Nimir    11 年前

    对于简单的脚手架任务,假设您遵循 convention of naming ,你永远不会得到任何错误,但即使你得到了错误,我猜这将是一个简单的打字错误或等待迁移类型的错误(快速搜索应该可以解决的问题)

    脚手架旨在推动和增加 快速成型 你的应用程序,但不会为你做空洞的工作。

    我记得前段时间和你一样感到困惑,我也在看错误的方向,试图弄清楚 脚手架 在我该看的时候做 Rails模板系统的工作原理 这是学习后的下一步 Rails MVC 基础知识。

    从导轨开始, http://guides.rubyonrails.org/layouts_and_rendering.html#overview-how-the-pieces-fit-together 要完全理解rails的工作原理还需要一些时间!