Ruby on rails 无法使用json设计注册

Ruby on rails 无法使用json设计注册,ruby-on-rails,json,curl,devise,Ruby On Rails,Json,Curl,Devise,我在使用/users/sign\u进行设计注册时遇到问题。我必须使用curl通过rails终端传递注册详细信息,如下所示: curl: //your-domain:3000/users/sign_up --data "email=jump@gmail.com&password=123456789&password_confirmation=123456789" 它应该返回: {"success":true,"info":"Registered","email":"jump@ex

我在使用/users/sign\u进行设计注册时遇到问题。我必须使用curl通过rails终端传递注册详细信息,如下所示:

curl: //your-domain:3000/users/sign_up --data "email=jump@gmail.com&password=123456789&password_confirmation=123456789"
它应该返回:

{"success":true,"info":"Registered","email":"jump@example.com","auth_token":"N8N5MPqFNdDz3G1jRsC9"}
但我收到以下错误消息:

ActionController::RoutingError (No route matches [POST] "/users/sign_up"):
当用户/登录正常工作时:

curl: //your-domain:3000/users/sign_in.json --data "email=abc@gmail.com&password=123456789"
返回:

{"success":true,"info":"Logged in","auth_token":"czzBpiNS7mkkQJAbHyMo","email":"abc@gmail.com"}

下面是我的RegistrationController类:

class RegistrationsController < Devise::RegistrationsController

before_filter :authenticate_user!, :except => [:create], :if => Proc.new { |c| c.request.format == 'application/json' }
  respond_to :json

  prepend_view_path 'app/views/devise'

  def create
    build_resource
    if resource.save
      sign_in resource
      resource.ensure_authentication_token!
      render :status => 200,
             :json => { :success => true,
                        :info => "Registered",
                        :email => resource.email,
                        :auth_token => resource.authentication_token }
    else
      render :status => :unprocessable_entity,
             :json => { :`enter code here`success => false,
                        :info => resource.errors }
    end
  end

end
下面是我们使用的内容(请在--“register”@top上查看)


试试这些代码,我用我的rails api来做

 devise_scope :user do
    post 'users' => 'registrations#create', :as => 'user_registration'
  end

 curl: //your-domain:3000/users --data "email=jump@gmail.com&password=123456789&password_confirmation=123456789"

如果我们运行
rake routes
我们可以看到designe注册(registration)有[new,create,update,…]

cancel_user_registration GET    /users/cancel(.:format)                 devise/registrations#cancel
   new_user_registration GET    /users/sign_up(.:format)                devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)                   devise/registrations#edit
       user_registration PATCH  /users(.:format)                        devise/registrations#update
                         PUT    /users(.:format)                        devise/registrations#update
                         DELETE /users(.:format)                        devise/registrations#destroy
                         POST   /users(.:format)                        devise/registrations#create
因此,路径
#new
仅显示注册页面,我们使用
#create
注册新用户,这是正确的路径:
/users.json
不是
/user/sign\u.json

我们可以在这里看到:

POST   /users(.:format)                        devise/registrations#create


你能显示你的
rake路由转储吗?
?当我使用rake路由获取转储时,我得到以下错误。这是因为rake verion。雷克流产了!您已经激活了rake 10.1.1,但是您的Gemfile需要rake 10.0.3。您刚刚更新了您的Gem吗?这意味着您有一个依赖于Rake
10.0.3
的gem,但您运行的是Rails
4.0.2
或我正在使用的gem“Rails”、“3.2.11”之类的东西。我想这不会是个问题。问题在于设计。如果我能够使用json登录,那么为什么我不能使用同样的方式登录呢。我不知道注册有什么问题。我被卡住了,无法前进。我正在使用android应用程序传递登录和注册详细信息/用户/sign\u-in工作正常,但/users/sign\u-up产生了问题。Hmmmm。如果你想的话,我可以发布我们用于此的代码?它有点老了,但应该对可能出现的问题给出一些想法。我得到以下错误:未定义的方法“注册”#好的,我想我知道你的问题-你可能有路径问题,我现在应该怎么做?我会发布我认为的错误-看看它是否修复了更多的错误?只有某些问题会导致这个问题,我正在使用这个curl:curl--data“电子邮件=jump@gmail.com&password=123456789&password_confirmation=123456789“我现在得到以下错误:{“成功”:错误,“信息”:{“电子邮件”:[“不能为空”],“密码”:[“不能为空”]}
 devise_scope :user do
    post 'users' => 'registrations#create', :as => 'user_registration'
  end

 curl: //your-domain:3000/users --data "email=jump@gmail.com&password=123456789&password_confirmation=123456789"
cancel_user_registration GET    /users/cancel(.:format)                 devise/registrations#cancel
   new_user_registration GET    /users/sign_up(.:format)                devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)                   devise/registrations#edit
       user_registration PATCH  /users(.:format)                        devise/registrations#update
                         PUT    /users(.:format)                        devise/registrations#update
                         DELETE /users(.:format)                        devise/registrations#destroy
                         POST   /users(.:format)                        devise/registrations#create
POST   /users(.:format)                        devise/registrations#create