【问题标题】:Rails 5 API not generating viewsRails 5 API 不生成视图
【发布时间】:2018-11-17 11:52:34
【问题描述】:

我使用 --api 标签启动了一个新的 Rails 5 项目。

我决定拥有某些管理控件,为此我需要视图。我修改了基本应用程序控制器以从ActionController::Base 继承而不是ActionController::API

但它仍然无法正常工作。我不断收到路由错误

routes.rb

Rails.application.routes.draw do
  get 'review/index'

  get 'review/show'

  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    scope module: 'api' do
        namespace :v1 do
            resources :articles, only: [:index, :show]
        end
    end
end

rails 生成控制器输出

>$ rails g controller Review index show
      create  app/controllers/review_controller.rb
       route  get 'review/show'
       route  get 'review/index'
      invoke  test_unit
      create    test/controllers/review_controller_test.rb

即使我手动创建了文件夹和文件,它也不会生成视图。

编辑 -
啊。愚蠢的我。我生成了控制器而没有在名称中添加多个。公约是一个严格的妈妈。

rails g controller reviews index show

【问题讨论】:

  • 您以错误的方式定义了您的路线。试试resources :reviews, only: [:index, :create]
  • 那些是自动生成的。并且更改它们仍然不起作用。我已经重启了服务器。

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

您已经使用--api 标志创建了项目,它不会为您生成视图(因为它预计只是一个 API)。我怀疑你想创建没有--api 的项目,而只是手动创建一些特定于 API 的控制器。

【讨论】:

  • 您绝对可以在 API 模式下创建工作视图。我不记得是怎么做到的,但这绝对是可行的@arjun。
  • 可行的,但是通过使用--api 定义项目,创建的项目没有一堆视图可能期望存在的东西。我首先将控制器更改为ActionController::Base,然后手动创建视图文件
  • @AlecSanger 我已经这样做了。首先在帖子中提到它。
  • 好吧,我搞定了。对问题进行了编辑。没有遵循命名约定。谢谢你们。
  • 如果您访问/review/index,它会加载页面吗?如果您希望在不使用 URI 中的 index 的情况下加载它,则需要将您的路由定义为资源或专门将您的 get review 指向正确的控制器。
猜你喜欢
  • 2023-04-09
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 2017-10-01
  • 2015-08-31
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多