我无法理解路由。另外,我正在尝试理解routes.rb中的资源(和资源)关键字。
我创建了home_controller.rb,并在routes.rb中放置了“resources:home”。我跑了rake路线,我可以看到所有这些东西,但我不知道该怎么做。我只是想显示一个带有表单的页面,比如index.html.erb,提交表单,在控制器中执行某些操作,然后再次显示完全相同的页面。
我想我想调用一个PUT“/ home”,或者其他东西,但我不确定我的href应该在erb页面中看起来像什么。
然后,home_controller.rb中的哪个方法会捕获该提交?
然后,我可能会重定向回index.html.erb吗?
我正在尝试不使用脚手架或发电机,这样我才能理解发生了什么。任何帮助赞赏。顺便说一下,铁轨3。
答案 0 :(得分:0)
答案 1 :(得分:0)
以下是您开始使用所需内容的快速说明:
rails应用程序中的每个HTTP请求都只路由到一个控制器方法。该控制器方法通过呈现某些内容或发出302重定向来执行请求(这会导致浏览器发出不同的请求)。
ROR中的路由描述了每个HTTP请求如何映射到每个控制器方法。 HTTP请求基于两个属性进行映射:请求的网址和 HTTP动词(GET
POST
PUT
等)。< / p>
当您在resources :homes
文件中routes.rb
告诉Rails您有一个名为HomesController
的控制器时,您要求Rails为该控制器设置其传统的RESTful路由。具体如下:
GET
网址上的HTTP /homes
index
方法 GET
网址上的HTTP /homes/1
show
方法id = 1
GET
网址上的HTTP /homes/new
new
方法 POST
网址上的HTTP /homes
create
方法new
表单提交到 GET
网址上的HTTP /homes/1/edit
edit
方法id=1
PUT
网址上的HTTP /homes/1
update
方法edit
表单提交到id=1
DELETE
网址上的HTTP /homes/1
delete
方法id=1
答案 2 :(得分:0)
简单地说,resources关键字指定您有一个对象(如用户,文章,帖子,评论等),您希望在其上创建“读取更新”和“删除”操作。它指定了7个操作,称为RESTful操作,允许您列出对象(索引),更新(编辑,更新),创建(新建,创建)或删除(销毁)。
这对应于控制器中的7个操作和4个视图文件(创建,更新和删除通常没有自己的视图)。
rake路线吐出路线,路径和路径助手。因此,您可以通过
链接到索引操作/页面<%= link_to 'New Article', new_article_path %>
或其他各种用途,使您不必使用可能随设计而改变的硬编码路径。
听起来,根据您的设计,您不需要全部7个动作。您只需要显示一个表单并根据输入创建模型对象。所以你可能会这样做
resources :home, only => [:new, :create]
在新的位置显示表单并在创建时将记录插入数据库。