【发布时间】:2016-06-14 08:08:15
【问题描述】:
我正在尝试为我的应用程序构建一个 json api
这是我的 ROUTES.RB 文件
Rails.application.routes.draw do
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
devise_for :users
namespace :api , :path =>"", :constraints => {:subdomain =>"api"} , defaults: {format: 'json'} do
namespace :v1 do
resources :posts do
resources :comments
end
end
end
# namespace :v1 do
# resources :posts, only: [:index]
#end
#end
root 'posts#index'
end
我在 Controller 下创建了另一个文件夹来使用命名空间
我在 v1 文件夹下创建了“api”文件夹,并在该文件夹下创建了一个 posts_controller.rb 文件 这是确切的路径 " /app/controllers/api/v1/posts_controller.rb "
class Api::V1::PostsController < ApplicationController
protect_from_forgery with: :null_session
before_action :destroy_session
def index
@posts=Post.all
respond_to do |format|
format.json { render json: @posts}
end
end
private
def destroy_session
request.session_options[:skip]= true
end
end
我确实在帖子控制器中有数据,并且也建立了关联。
其实我需要的是,当我访问这个 Url http://api.localhost:3000/v1/posts 我需要帖子中的数据,就像浏览器中的 json 格式一样
但它显示此错误
没有路线匹配 [GET] "/v1/posts"
我该如何解决这个错误?
【问题讨论】:
标签: ruby-on-rails ruby json api