0

在我的 Rails 4 代码中,项目是一种资源(我为项目创建了一个数据库迁移,使用 rails 生成模型项目 column1:string ...)。我创建了一个控制器 items_controller,其中包含一个方法 htmlupdates。我用 ajax 调用

url: '/items/htmlupdates'

当我将以下行放入 config/routes.rb 时,我的代码工作正常

get 'items/htmlupdates' => 'items#htmlupdates'

但是当我将以下内容放入 config/routes.rb 时,代码不起作用

resources :items, only: [:new, :htmlupdates, :create]

在终端日志中,我收到错误消息:

Started GET "/items/htmlupdates?_12345678..." for 127.0.0.1 at 2013-09-15 10:47:54 -0700
Processing by ItemsController#show as JS
  Parameters: {"_"=>12345678...", "id"=>"grades"}

为什么它认为我正在尝试在 items 表中显示 htmlupdate 行?ajax 调用中 url 的正确格式是什么?谢谢。

4

1 回答 1

2

Rails 资源基于七个 RESTful 操作indexshownewedit、和create,它们映射到 HTTP 动词 GET、POST、PUT、DELETE 和 PATCH。updatedestroy

您不能使用该resource命令创建这些操作之外的自定义路由。对于自定义路线,请使用:

get 'items/htmlupdates', :to => 'items#htmlupdates'

有关更多信息,请查看Rails Guides中的路由文档。

于 2013-09-15T18:21:34.200 回答