2017-03-20 6 views
-1

ich zur Zeit immer diese Fehlermeldung:nicht definierte Methode `Methode‘ für ‚String‘: String

undefined method `street_address' for "Not Set":String

Mein Ziel ist es, einen Fehler zu behandeln, die auftritt, wenn eine Adresse des Benutzers zurück Null kommt.

Hier ist der Code mit dem der Fehler auftritt:

def address 
    if params[formatted_address["address"]].nil? 
     address = '' 
     street_address = '' 
     country = '' 
     region = '' 
     city = '' 
     zip = '' 
    else 
     address = ActiveSupport::JSON.decode(formatted_address["address"]) 
     street_address = address["street_address"] 
     country = address["country"] 
     region = address["region"] 
     city = address["locality"] 
     zip = address["postal_code"] 
    end 
    end 

    info do 
    { 
     name: user_info.name, 
     email: user_info.email, 
     nickname: user_info.preferred_username, 
     first_name: user_info.given_name, 
     last_name: user_info.family_name, 
     gender: user_info.gender, 
     phone: user_info.phone_number, 
     birthdate: user_info.birthdate, 
     street_address: address.street_address, <-- error occurs here 
     country: address.country, 
     region: address.region, 
     city: address.city, 
     zip: address.zip, 
     urls: { website: user_info.website } 
    } 
    end 

Antwort

-1

Wenn Sie die Leerzeichen in Adressfeldern bei leeren Adressparameter speichern möchten, dann sollten Sie standardmäßig ‚‘ in der Migration festgelegt/Tabelle.

0

in der else-Anweisung i gerade eine Replik JSON mit den Werten, die ich zurück

def address 
     if formatted_address["address"].nil? 
      address = JSON.parse('{ 
      "street_address": "", 
      "country": "", 
      "region": "", 
      "locality": "", 
      "postal_code": "" 
      }') 
     else 
      address = ActiveSupport::JSON.decode(formatted_address["address"]) 
     end 
     end 

    info do 
    { 
     name: user_info.name, 
     email: user_info.email, 
     nickname: user_info.preferred_username, 
     first_name: user_info.given_name, 
     last_name: user_info.family_name, 
     gender: user_info.gender, 
     phone: user_info.phone_number, 
     birthdate: user_info.birthdate, 
     street_address: address["street_address"], 
     country: address["country"], 
     region: address["region"], 
     city: address["locality"], 
     zip: address["postal_code"], 
     urls: { website: user_info.website } 
    } 
    end 
kommen wollte
Verwandte Themen