rails g scaffold需要解释 - form_for提交索引?

时间:2014-05-13 16:04:36

标签: ruby-on-rails

我正在尝试使用命令rails g scaffold ModelName生成的页面来理解在创建对象期间发生的事情。

我不明白的是,给定模型Location_form.html.erb form-tag看起来像这样:

<%= form_for(@location) do |f| %>

如果我理解正确,可以将表单提交指向location_path,这就像存储在数据库中的所有位置的索引(或列表)。

为什么表单不指向createupdate?实际创建的对象在哪里?如果有人能描述这里的流程,我会非常感激,比如

  • _form.html.erb提交
  • 创建locations_controller.rb重定向到
  • locations_controller.rb中的
  • 索引,呈现
  • sometemplate.html.erb

1 个答案:

答案 0 :(得分:1)

表单提交的位置取决于@location.new_record?

如果是新记录,它会POSTlocations_path/locations。这映射到LocationsController#create

如果是现有记录,则会PUT(或PATCH更新版本的Rails)location_path(@location)/locations/:id。这映射到LocationsController#update

正如@Pavan在评论中所建议的那样,查看现有路线可以帮助理解路由:

rake routes