La création de l'Utilisateur avec des Rails et d'API JSON?
Donc je suis en essais très simple API dans les Rails pour voir si je peux créer un utilisateur à partir de l'échelle locale à l'aide du plugin Chrome Facteur (RESTE extension de Client).
Dans mon application rails, j'ai créé un dossier/espace de noms pour mon API, et à chaque fois que j'essaie de créer mes utilisateurs, j'obtiens l'erreur suivante:
Manque de modèle de l'api/v1/utilisateurs/créer, application/créer avec {:locale=>[:fr], :formats=>[:json], des :gestionnaires d'=>[:erb, :builder :raw, ruby, :jbuilder, :le café]}. Recherché: * "PATH/app/views"
Je suis à l'aide de Rails 4.0.1 et Ruby 2.0
Je poste une capture d'écran ci-dessous de ce que je vais l'afficher:
module Api
module V1
class UsersController < ApplicationController
class User < ::User
# add any hacks
end
respond_to :json
def index
respond_with User.all
end
def show
respond_with User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.create(user_params)
# respond_with(@user)
if @user.save
# render json: @user, status: :created, location: @user
redirect_to @user
end
end
private
def user_params
params.require(:user).permit(:name, :age, :location) if params[:user]
end
end
end
end
Sur la base de mon user_params, je devrais être capable de créer un nouvel utilisateur, correct?
S'il vous plaît laissez-moi savoir si vous avez besoin d'autres infos et je vais faire de mon mieux pour répondre le plus vite possible!
Merci!
OriginalL'auteur eightonrose | 2013-12-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer de l'utilisateur aide de l'API.
1) d'Abord, vous avez besoin de mettre les ressources appropriées dans vos itinéraires.rb:
2), Vous devez créer une Détente de style contrôleur pour traiter les demandes. Voici comment votre action "créer" peut être mis en œuvre.
Exemple de "créer" avec respond_to:
Voir les documents sur respond_with et respond_to si vous avez besoin quelque chose de spécial à y répondre.
Peut également être utile de railscasts épisodes de l'API de bâtiment: #350 et #352
P. S. dossier/espace de noms/v1/users_controller doit être le même que le nom de la classe dans votre module Api
P. S. 2, Vous pouvez observer mon application, où vous pouvez probablement trouver quelque chose d'utile (le même que votre app - API simple pour les dossiers de création) - myApp
Exemple de users_controller (contrôleurs/api/v1/users_controller.rb):
Oui, vous pouvez avoir autant de users_controllers que vous en avez besoin, parce qu'ils sont dans un des espaces de noms différents (l'un est votre principal users_controller et d'autres contrôleurs/api/v1/users_controller.rb, contrôleurs/api/v2/users_controller.rb, etc...).
Je voulait juste dire que vous avez un respond_to et un respond_with exemple, et je n'étais pas sûr si vous en mettre un dans la version de l'API et l'un dans l'autre..
Eh bien, j'espère que c'est clair maintenant. Si vous avez des questions, s'il vous plaît laissez-moi savoir.
Tout fonctionne maintenant! Merci beaucoup!!
OriginalL'auteur Mihail Davydenkov
redirect
dose n'est pas de retour, de sorte que votrecreate
méthode permettra de le garder à la recherche de modèle pour le rendu, et puis ce n'est pas de correspondance de modèle.À corriger, vous devez renvoyer explicitement
redirect
Vous devez également prêter attention à l'url par défaut de @user. Il est préférable d'assigner un nom de chemin d'accès de manière explicite dans ce cas, dire
redirect_to(user_path(@user))
OriginalL'auteur Billy Chan