Ruby: Trikčių šalinimas

Susidūrėte su problema savo Ruby paslaugoje? Sprendimas tikriausiai yra čia!

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti Ruby cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Diekite savo aplikaciją per kelias sekundes naudodami paprastą git push.
  • Naudokite savo domeno vardą ir pasinaudokite automatiniu HTTPS sertifikatų konfigūravimu didesniam saugumui.
  • Būkite ramūs dėl automatinių atsarginių kopijų, atnaujinimų vienu paspaudimu ir aiškios, skaidrios bei prognozuojamos kainodaros.
  • Pasiekite optimalią veikimo spartą ir tvirtą saugumą dėl privačios, dedikuotos infrastruktūros.

Taupykite laiką ir supaprastinkite savo darbą: išbandyti Stackhero Ruby cloud hosting sprendimą užtruks tik 5 minutes!

Stackhero Ruby debesų prieglobos paslauga yra sukurta būti patogi vartotojui, tačiau kartais gali kilti problemų. Žemiau rasite patarimus, kaip išspręsti dažniausiai pasitaikančias klaidas.

Ši klaida gali pasirodyti diegimo metu:

error: failed to push some refs to '[...]'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Šis pranešimas rodo, kad jūsų instancijos Git saugykloje yra turinys, kurio nėra lokaliai. Norėdami tęsti, galite naudoti šią komandą sinchronizacijai priversti:

git push -f stackhero main

Vykdant git push stackhero main, gali atsirasti ši klaida:

error: src refspec main does not match any
error: failed to push some refs to 'ssh://<XXXXXX>.stackhero-network.com:222/project.git'

Ši klaida rodo, kad jūsų saugykloje nėra main šakos. Vietoj to, gali reikėti stumti į master šaką:

git push stackhero master

Pranešimas Everything up-to-date iš Git rodo, kad tarp jūsų lokalaus kodo ir Stackhero saugyklos nebuvo aptikta jokių pakeitimų.

Jei atlikote pakeitimus, įsitikinkite, kad jie yra įrašyti:

git add -A .
git commit -m "Jūsų commit žinutė"
git push stackhero main

Jei norite inicijuoti diegimą be jokių realių kodo pakeitimų, galite sukurti tuščią commit:

git commit --allow-empty -m "Force update"
git push stackhero main

Patobulinta Makefile versija yra prieinama šiam scenarijui automatiškai spręsti. Su ja galite diegti tiesiog paleisdami make deploy, net ir be kodo pakeitimų.

Ši klaida reiškia, kad arba nėra Makefile projekto šakniniame kataloge, arba Makefile neturi run tikslo.

Norėdami tai išspręsti, galite pridėti Makefile, kuriame yra šis pavyzdys:

run:
	rake assets:precompile
	rake db:migrate RAILS_ENV=production
	RAILS_ENV=production bundle exec puma -C config/puma.rb

Jums gali būti naudinga patobulinta Makefile versija, ypač norint supaprastinti kūrimo ir diegimo darbo eigas.

Klaida *** missing separator Makefile paprastai atsiranda, kai tabuliacijos simbolis neteisingai pakeičiamas tarpais prieš komandą. Makefile failuose komandos visada turi prasidėti tabuliacijos simboliu.

Norėdami tai išspręsti, įsitikinkite, kad kiekviena komandos eilutė prasideda tinkamu tabuliacijos simboliu, o ne tarpais:

run:
<tab>command

Pakeiskite <tab> tikru tabuliacijos simboliu, kad išspręstumėte problemą.