我知道这些问题已被问过几次,但我检查了这些答案,但似乎没有解决我的问题。
路径app / controllers / api / v1 / 上的users_controller.rb
module Api
module V1
class UsersController < ApplicationController
def create_user
@users = User.new(user_params)
if @users.save
render json: { status: '201', message: 'User created successfully' }
else
render json: { status: '400', message: 'Invalid user info', data: @users.errors }
end
end
def user_params
params.permit(:first_name, :last_name, :email, :password)
end
end
end
end
的routes.rb
namespace 'api' do
namespace 'v1' do
post "user/createuser", to: "user#create_user"
end
end
我尝试过:
但是当我更改routes.rb
时,这可以正常工作 post "user/createuser", to: "user#create_user"
到resource :users
和
def create_user
到def create
为什么在定义自定义路由而不是使用默认路由时,事情不起作用?如何使用自定义路线开展此工作
答案 0 :(得分:2)
由于Rails惯例,我认为您需要使用
更新路线post "user/createuser", to: "users#create"
而不是
post "user/createuser", to: "user#create_user"