【问题标题】:Rails: No route matchesRails:没有路线匹配
【发布时间】:2017-07-13 17:40:17
【问题描述】:

我是 RoR 的新手。我在这个网站上到处搜索,我找不到我的问题的答案。

我试图在没有视图的情况下在 Ruby on Rails 中创建 api。基本上,我成功地使用了 get 和 post 方法来创建新数据。

我的问题现在我收到no routes match 更新和删除错误。以下是我的帖子控制器代码:

def update
  @post = Post.where(id: params[:id], user_id: session[:user_id]).first
  if @post.update_attribute(:description, params[:description])
    render json: @post
  else
    render json: {error: 'Process not completed'}
  end
end

def destroy
  @post = Post.where(id: params[:id], user_id: session[:user_id]).first
  if @post.destroy
    render json: {status: 'Successful'}
  else
    render json: {status: 'Your cannot delete this data'}
  end
end

以下是我的路线代码

namespace :api do
  namespace :v1 do
    get 'users/request_token', to: 'users#request_token'
    resources :users
    resources :posts
  end
end

我知道这是你们的基本代码。但我希望有人可以帮助像我这样的新人在 RoR 方面有所提高。

下面是我的错误视图

【问题讨论】:

  • 你打电话的网址是什么?
  • 发布您遇到错误的视图以及错误
  • localhost:3000/api/v1/posts?token=333 先生@Rohit
  • 先生,我已经更新了我的问题。感谢您的回复@DeepakMahakale
  • 你能检查一下你的控制器的名字和文件名吗

标签: ruby-on-rails


【解决方案1】:

你必须打电话
http://localhost:3000/api/v1/posts/333”用于使用“DELETE”方法删除帖子,
并使用方法“PUT”编辑/更新帖子“http://localhost:3000/api/v1/posts/333”。

【讨论】:

    【解决方案2】:

    删除帖子时,您需要将 id 与 url 一起传递

    示例:localhost:3000/api/v1/posts/:id?token=xyz

    您可以使用 rake routes 命令检查您的路线

    希望对你有帮助

    【讨论】:

    • 这也完美回答了我的问题!非常感谢!
    【解决方案3】:

    您的呼叫路线必须像 /api/v1/posts/:post_id 并且在更新的情况下必须是 PUT 类型并且在删除的情况下必须是DELETE 类型的请求。请试一试,如果有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 2013-03-14
      相关资源
      最近更新 更多