Ruby on rails 更好地理解Rails中的脚手架

Ruby on rails 更好地理解Rails中的脚手架,ruby-on-rails,ruby-on-rails-3,scaffolding,Ruby On Rails,Ruby On Rails 3,Scaffolding,我读过rails指南,但有些事情我自己做的时候还是不明白 例如,为什么在本地主机上访问show视图时会出现错误?脚手架在我的控制器中创建了一个显示动作,该动作是空的,并且是一个视图,但仍然会收到一条错误消息 类似的事情也发生在索引上 搭建脚手架的目的不是为了帮助你完成这一切吗?我假设如果我写了几篇文章,索引操作会把我带到所有文章的索引中,但它并没有相反地把它们全部列出。脚手架这样做背后的逻辑是什么 编辑::: 这是我收到的错误消息: ActiveRecord::RecordNotFound in

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

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

类似的事情也发生在索引上

搭建脚手架的目的不是为了帮助你完成这一切吗?我假设如果我写了几篇文章,索引操作会把我带到所有文章的索引中,但它并没有相反地把它们全部列出。脚手架这样做背后的逻辑是什么

编辑:::

这是我收到的错误消息:

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

当我访问
http://localhost:3000/experiments/index

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

脚手架旨在推动和增加应用程序的快速原型制作,但不会为您完成打孔工作

我记得不久前和你一样感到困惑,我也看错了方向,试图弄清楚脚手架做了什么,而我本应该看一下Rails模板系统是如何工作的,这是学习基础知识后的下一步


从指南开始,完全理解rails的工作原理需要一些时间

您正在错误地访问路由。 要访问索引页面:您需要url
http://localhost:3000/experiments

指定url时:
http://localhost:3000/experiments/index
,Rails将它与
显示页面的路径匹配(如下所示):
/experiments/:id

如果仔细阅读错误:

ActiveRecord::RecordNotFound in ExperimentsController#show
找不到id=index的实验

Rails将url映射到
show
action,并试图找到一个显然不存在的
id=index
的实验,您会得到一个错误

在命令提示符下运行
rake routes
,您将看到为resource
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


注意:我强烈建议您仔细阅读本指南,更好地了解路由的工作原理。

这里的问题是什么?在生成脚手架后访问我的/show&/index时,我为什么会出现错误…发布您的代码和您遇到的错误。我们无法帮助您!更新了我的错误代码,谢谢!