Ich arbeite an einer einfachen Rails-App, die SMS macht. Ich nutze Twilio dafür über das Juwel twilio_ruby. Ich habe 10 verschiedene Telefonnummern, von denen ich zufällig SMS senden möchte.

Ich weiß, ob ich so etwas mache:

numbers = ["281-555-1212", "821-442-2222", "810-440-2293"]
numbers.sample
281-555-1212

Es wird zufällig einen der Werte aus dem Array ziehen, genau das, was ich will. Das Problem ist, dass ich nicht alle 10 dieser Nummern in die App fest codieren oder sie der Versionskontrolle übergeben möchte.

Also liste ich sie zusammen mit meiner Twilio SID / Token in yaml (Secrets.yml) auf. Wie kann ich ein Array aus den 10 Yaml-Feldern erstellen, d. H. Twilio_num_1, twilio_num_2 usw. usw., damit ich numbers.sample aufrufen kann?

Oder gibt es einen besseren Weg, dies zu tun?

3
nulltek 25 Dez. 2015 im 03:04

3 Antworten

Beste Antwort

Sie können auch verwenden

twilio_numbers:
  - 281-555-1122
  - 817-444-2222
  - 802-333-2222

Sie müssen also die Zahlen nicht in eine Zeile schreiben.

4
Aetherus 25 Dez. 2015 im 00:28

Dies durch Versuch und Irrtum herausgefunden.

In Secrets.yml

twilio_numbers: ["281-555-1122","817-444-2222","802-333-2222"]

In meinem Code:

Rails.application.secrets.twilio_numbers.sample

Klappt wunderbar.

1
nulltek 25 Dez. 2015 im 00:11

Erstellen Sie eine Datei: config/twilio_numbers.yml

---
  - 281-555-1122
  - 817-444-2222
  - 802-333-2222

Und lade es wie folgt in dein config/application.rb:

 config.twilio_numbers = YAML.load_file 'config/twilio_numbers.yml'

Sie können dann von einer beliebigen Datei aus wie folgt auf das Array zugreifen:

 Rails.application.config.twilio_numbers
 => ["281-555-1122", "817-444-2222", "802-333-2222"]
0
Tilo 25 Dez. 2015 im 02:42