我在一个名为“importdata”的其他restfull控制器中有一个额外的方法。因为我实际上是在更改数据(在数据库中导入 csv),所以我知道它应该是一个 put 路由而不是 get。
最初我有
resource data_set do
put 'importdata', on: :method
end
我也尝试过的是:
put 'data_sets/:id/importdata', "data_sets#importdata'
rake routes 在这两种情况下都显示了我想要的路线。
当我在控制器中的(第一个示例)路由上使用该方法时,我所做的是
redirect_to import_data_sets_path id: dataset.id
第二个例子:
redirect_to controller: "data_sets", action: "importdata", id: dataset.id
我在这两种情况下得到的信息是:
No route matches [GET] "/data_sets/28/importdata"
这是正确的,因为它是一个放置路线。我让它工作的唯一方法是改变 put 以获得:
get 'data_sets/:id/importdata', "data_sets#importdata'
我怎样才能让它在 put 路线上工作?它应该首先是一条放置路线吗?
谢谢你的时间。