2016-12-26 1 views
0

J'ai simple de créer une action où je passe quelques params, mais obtenir une erreur de permis de méthode non définie pour:NoMethodError (méthode non définie permis » pour « test »: String):

NoMethodError (méthode non définie de permis » pour "twest": String):

suivant est le params que je reçois dans la demande:

{"email"=>"[email protected]", "promo_code"=>"test", "description"=>"this is test", "action"=>"create"} 

et les promo_code_params

def promo_code_params 
    params.require(:promo_code).permit(:email,:code, :description) 
end 

l'action create

def create 
@promo_code = @reward.promo_codes.new(promo_code_params) 
# code 
# code 
end 
+0

S'il vous plaît, affichez votre code d'affichage? En plus de l'action 'new' dans le contrôleur –

Répondre

0
hachage

Votre params est pas sur la manière attendue votre promo_code_params définit en. Il devrait ressembler à:

{ "promo_code" => {"email"=>"[email protected]", "code"=>"test", "description"=>"this is test"}, "action"=>"create"} 

ou vous promo_code_params devrait être comme:

def promo_code_params 
    params.permit(:email,:promo_code,:description) 
end 

Espérons que vous aide à comprendre ce qui ne va pas.

+0

Cela a beaucoup aidé – Nikhil