在rails中手动添加new_foo_path

时间:2012-04-16 13:00:45

标签: ruby-on-rails

在Rails中,当您使用脚手架创建模型时,如下所示:

rails generate scaffold用户名:string email:string

它将生成:模型,控制器和视图

视图例如,在index.html.erb文件中有一个列出所有Users寄存器的表。对于每个用户,都有链接:显示,编辑,销毁

index.html.erb中的

由以下行表示:

 <td><%= link_to 'Show', student %></td>
 <td><%= link_to 'Edit', edit_student_path(student) %></td>
 <td><%= link_to 'Destroy', student, :confirm => 'Are you sure?', :method => :delete %></td>

并且还有一个新用户链接,表示为:

<%= link_to 'New Student', new_student_path %>

但是,如果我在没有脚手架的情况下手动创建模型,视图和控制器,则不会生成这些“路径”。 “路径”是指:new_student_path,edit_student_path(学生),学生

如何手动生成这些?

2 个答案:

答案 0 :(得分:1)

将资源添加到config/routes.rb时,路径将自动生成。

假设您已手动添加名为StudentsController的控制器。 要获取new_student_path,edit_student_path等,您需要将此行添加到config/routes.rb

resources :students

这会为七个休息动作添加路径。 您可以在此网址上阅读有关rails路由的更多信息:http://guides.rubyonrails.org/routing.html

答案 1 :(得分:0)

修改您的config/routes.rb。 您可以添加例如这样:

resources :students

您可以在http://guides.rubyonrails.org/routing.html

看到更多内容

您可以在命令行中键入rake路线,以查看在执行此操作之前和之后可用的路线 基本上你会得到以下路线:

HTTP VerbPath   action  used for 
GET     /photos         index   display a list of all photos 
GET     /photos/new     new     return an HTML form for creating a new photo 
POST    /photos         create  create a new photo 
GET     /photos/:id     show    display a specific photo 
GET     /photos/:id/edit edit   return an HTML form for editing a photo 
PUT     /photos/:id     update  update a specific photo 
DELETE  /photos/:id     destroy delete a specific photo