2017-09-12 6 views
1

Je rencontre des problèmes avec les paramètres d'une application mise à niveau de 4.2 à 5.1. J'ai autorisé mes paramètres, mais comme le dit la documentation, je récupère un objet pour mon tableau de hachage, mais je n'arrive pas à en accéder aux valeurs. Comment puis-je simplement obtenir la valeur de cet objet?Accès aux valeurs de ActionController Paramètres hash

{"_method"=>"delete", "authenticity_token"=>"Z6ZqriiuXu6ODDqhGgocGiaN12rjKD6pUB6n/2v+CABZDAjwLzwczsMM3nM8f0PI0nww43o5mlC35HK+9PVa8w==", 
    "domain_name"=>"test.testmodule2.com.", 
    "hosted_zone_id"=>"/hostedzone/XXXXXXXXXX", 
    "ttl"=>"3600", 
    "type"=>"A", 
    "value"=>[{"value"=>"1.1.1.1"}], 
    "id"=>"/hostedzone/XXXXXXXXXX"} 

def record_params 
    params.permit!([:hosted_zone_id, :domain_name, :type, :ttl, :alias, :value]).to_h! 
end 


def destroy 
    value = params[:value] 
    # returns [<ActionController::Parameters {"value"=>"1.1.1.1"} permitted: true>] 
    # would like it to return [{"value"=>"1.1.1.1"}] 
end 

Répondre

1

Si ce hachage est la valeur de params[:value], puis accéder à la value clé à l'intérieur, comme:

params[:value] = { 
    "_method"=>"delete", 
    "authenticity_token"=>"...", 
    "domain_name"=>"test.testmodule2.com.", 
    "hosted_zone_id"=>"/hostedzone/XXXXXXXXXX", 
    "ttl"=>"3600", 
    "type"=>"A", 
    "value"=>[{"value"=>"1.1.1.1"}], 
    "id"=>"/hostedzone/XXXXXXXXXX" 
} 

params['value']['value'][0]['value'] 
# => "1.1.1.1" 
params['value']['value'][0].keys 
# => ["value"] 
+0

Merci pour la réponse rapide. Quand je mets [: valeur], il imprime la valeur correcte, mais quand j'appelle cette variable plus tard quand je dois juste être l'objet de tableau, il renvoie '" [ "1.1.1.1"} autorisé: vrai>] "'. Des pensées? – wsizoo

+0

En raison de votre structure, vous devrez accéder à la table array ActionControllerParameters, puis la clé de valeur comme 'p params ['value'] ['value'] [0] ['value']' –

+0

Donc, il n'y a pas un moyen maintenant d'obtenir le tableau/hachage plutôt que la valeur? – wsizoo