gpt4 book ai didi

ruby-on-rails - rake 路由上未初始化的常量 API

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:54 25 4
gpt4 key购买 nike

正在关注 this tutorial ,我在 Rails 上创建了我现有博客 Web 应用程序的 API。我收到错误:

uninitialized constant API

这是我的代码:

lib/api/v1/articles.rb:

module API
module V1
class Articles < Grape::API
version 'v1'
format :json

resource :articles do
desc "Return list of recent posts"
get do
Article.recent.all
end
end
end
end
end

lib/api/v1/root/rb

module API
module V1
class Root < Grape::API
mount API::V1::Articles
end
end
end

lib/api/root.rb

module API
class Root < Grape::API
prefix 'api'
mount API::V1::Root
end
end

lib/tasks/routes.rake

namespace :api do
desc "API Routes"
task :routes => :environment do
API::Root.routes.each do |api|
method = api.route_method.ljust(10)
path = api.route_path.gsub(":version", api.route_version)
puts " #{method} #{path}"
end
end
end

config/routes.rb

 Rails.application.routes.draw do
mount API::Root => '/'
get 'welcome/index'
root 'welcome#index'
resources :articles
end

这是现有的网络应用程序代码:

app/controllers/articles_controller.rb

class ArticlesController < ApplicationController
def new
end
def create
# render plain: params[:article].inspect
@article = Article.new(article_params)

@article.save
redirect_to @article
end
def show
@article = Article.find(params[:id])
end
private

def article_params
params.require(:article).permit(:title,:text)
end

end

现在我处于本文的访问 API 路由部分。当我运行 rake routes 时,它给出了错误,未初始化的常量 API。我做错了什么。

编辑:根据评论,给出详细错误

rake aborted!
NameError: Uninitialized constant API
F:/blog/config/routes.rb:2:in 'block in <top (required)>'
F:/blog/config/routes.rb:1:in '<top (required)>'
C:in 'execute_if_updated'
F:/blog/config/environment.rb:5:in '<top (required)>'
Tasks: TOP =>routes =>environment

environment.rb 的内容

# Load the Rails application.
require File.expand_path('../application', __FILE__)

# Initialize the Rails application.
Rails.application.initialize!

当我在你的 config/application.rb 中插入 config.autoload_paths += Dir["#{config.root}/lib/**/"] 并运行 rake routes 时,它给出错误 can' t 将 Symbol 转换为 String

enter image description here

升级葡萄版本,报错:

enter image description here

最佳答案

根据讨论,您需要将 grape gem 的版本更新为 0.9.0,然后您需要在 Gemfile 中添加以下行:

gem 'grape', '0.9.0'

然后:

$ bundle install

关于ruby-on-rails - rake 路由上未初始化的常量 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26335006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com