【问题标题】:Oops!! Method index.en not found for resource items哎呀!!找不到资源项的方法 index.en
【发布时间】:2019-10-16 13:08:16
【问题描述】:

我已将 https://github.com/Apipie/apipie-rails 用于 API 文档。

在我将我的 rails 版本更新到 rails 5.2.3 之后,它在 rails 4vestion 上运行良好,但它停止了工作。

# app/controllers/api/v1/items_controller.rb
module Api
  module V1
    class ItemsController < API::V1::BaseApiController
      api :GET, '/items', 'All items'
      def index
        render json: @items
      end
    end
  end
end

我遇到了这种错误

Started GET "/api-doc/1.0/items/index.en.html" for ::1 at 2019-10-16 18:32:08 +0530
Processing by Apipie::ApipiesController#index as HTML
Parameters: {"version"=>"1.0", "resource"=>"items", "method"=>"index.en.html"}
Rendering /Users/sc/.rvm/gems/ruby-2.6.3/gems/apipie-rails-0.5.16/app/views/apipie/apipies/apipie_404.html.erb within layouts/apipie/apipie
Rendered /Users/sc/.rvm/gems/ruby-2.6.3/gems/apipie-rails-0.5.16/app/views/apipie/apipies/apipie_404.html.erb within layouts/apipie/apipie (2.1ms)
Completed 404 Not Found in 659ms (Views: 13.5ms | ActiveRecord: 0.0ms)

【问题讨论】:

  • 您的索引返回一个 json 响应,但您的请求是 .html,另外,我不知道您如何执行请求以及如何从 url 处理 .en
  • 这个链接是从 Apipie 文档生成的,对吧?它使用默认语言环境en:您是否定义了该语言环境?只有在 api 文档中找不到 api 版本、资源、方法或语言时,才会导致该错误。

标签: ruby-on-rails ruby apipie


【解决方案1】:

只需在“config/initialize/apipie.rb”中添加一行代码:

config.translate = false

【讨论】:

    【解决方案2】:

    在您的config/initializers/apipie.rb 中,将config.languages = ['en'] 添加到配置块中。所以它应该看起来像这样:

    Apipie.configure do |config|
      config.app_name                = "MyApp"
      config.api_base_url            = "/api"
      config.doc_base_url            = "/apipie"
      config.languages = ['en']
      config.api_controllers_matcher = "#{Rails.root}/app/controllers/api/**/*.rb"
    end
    

    然后重启你的 Rails 服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      相关资源
      最近更新 更多