即使我在config / routes.rb文件

时间:2016-05-30 21:37:36

标签: ruby-on-rails-4 methods controller routes config

我正在使用Rails 4.2.3。我在我的config/routes.rb文件

中有这个
resources :my_objects do
  get "import"
end

并在我的app / controllers / my_objects_controller.rb文件中定义了这个

def import
  puts "starting"
  service = XACTEService.new(“Stuff”, '2015-06-01', 'Zoo')
  service.process_my_object_data
  puts "finished"
end

当我访问http://localhost:3000/my_objects/import时,我收到此错误:

  

找不到MyObjectsController的错误动作'show'。

我没有在日志文件中看到import操作中的“puts”语句。我还需要做些什么才能调用import方法?

1 个答案:

答案 0 :(得分:0)

import路由名称被视为show的参数,因为路由未正确定义。检查rake routes的输出,看看它在这种情况下实际做了什么。

相反,您需要像这样定义您的路线:

resources :my_objects do
  collection do
    get "import"
  end
end

或者像这样:

resources :my_objects do
  member do
    get "import"
  end
end

Rails Routing from the Outside In指南中有一个名为Adding More RESTful Actions的部分,可帮助您确定哪些选项适合您的应用。