2013-07-13 9 views
13

Ja próbuje zarejestrować użytkownika opracować za pomocą JSON, ale wciąż otrzymuję ActiveModel::ForbiddenAttributesErrorSzyny 4 i opracować - Rejestracja nowego użytkownika za pośrednictwem JSON API

class Api::V1::RegistrationsController < ApplicationController 

    skip_before_filter :verify_authenticity_token 
    respond_to :json 

    def create 

    user = User.new(params[:user]) 

    if user.save 
     render :json => user.as_json(:auth_token=>user.authentication_token, :email=>user.email), :status=>201 
     return 
    else 
     warden.custom_failure! 
     render :json => user.errors, :status=>422 
    end 
    end 

    def user_params 
    params.require(:user).permit(:email, :password) 
    end 

end 

Oto moja prośba JSON:

Processing by Api::V1::RegistrationsController#create as JSON 
Parameters: {"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]"}, "registration"=>{"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]"}}} 

Zdaję sobie sprawę, ma to coś wspólnego z Silnymi parametrami, ale nie udało się jeszcze tego złamać.

Odpowiedz

11

chciałbym zmienić:

user = User.new(params[:user]) 

z:

user = User.new(user_params) 

Od docs:

# This will raise an ActiveModel::ForbiddenAttributes exception because it's using mass assignment 
# without an explicit permit step. 
def create 
    Person.create(params[:person]) 
end 
Powiązane problemy