0

我正在关注教程并达到这一点:http ://rubysource.com/building-your-first-rails-application-views-and-controllers/

rails generate controller urls new

我们只传入 new 动作(而不是 new、create 和 show)的原因是因为 Rails 会自动为生成器调用中包含的每个动作生成一个虚拟视图。在这种情况下,我们只需要新操作的虚拟视图,因此我们排除了其他操作。

那么为什么我们只需要为 new 创建控制器呢?有人可以更详细地解释一下吗?

4

2 回答 2

1

这只会在控制器中创建新动作,并且应该跳过其他动作。

编辑:它将在 app/controllers 中生成一个名为 UrlsController 的控制器,并且在该控制器中只有一个名为 action 的方法,它对应于名为urls/new的路由或 url

于 2013-01-18T02:56:13.843 回答
1

该命令用于创建UrlsController只有一种方法:new.

此命令还将自动为您创建一个视图文件:

app/views/urls/new.html.erb

您是否提供了更多参数,例如:

rails generate controller urls new create show

你会得到:

app/views/urls/new.html.erb
app/views/urls/create.html.erb
app/views/urls/show.html.erb

由于本教程只需要new视图,因此没有必要创建额外的视图,因此这些额外的参数没有添加到generate命令中。

在本教程的后面部分,您手动添加createshow方法,但您从不为这些方法添加视图(因为这些方法在此应用程序中不需要特定的视图文件)。

所以:您所做的是UrlsController使用一种方法创建控制器new,以及该方法的相应视图。您将在本教程后面手动编码的其余方法,因此无需自动生成其他任何内容(createshow)。

于 2013-01-18T03:13:41.590 回答