【问题标题】:Getting "The action 'show' could not be found" even though I have defined the method in my config/routes.rb file即使我已经在我的 config/routes.rb 文件中定义了该方法,但得到“找不到动作‘显示’”
【发布时间】:2016-09-28 18:29:29
【问题描述】:

我使用的是 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 找到动作“显示”错误。

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

【问题讨论】:

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


    【解决方案1】:

    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 的部分,可帮助您确定哪些选项适合您的应用。

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      相关资源
      最近更新 更多