Category: Rails

Rails, Cookies (ciasteczka) oraz przecinki

Kilka dni temu, potrzebowałem odczytywać na potrzeby analizy, zawartość ciastka odpowiedzialnego za GUI interfejsu do Susanoo. Jakież było moje zdziwienie gdy zamiast oczekiwanego:

0,1,3,4,2,5,7,6,8||||280||||1200

Railsy widziały samo 0, a dokładniej to wartości do pierwszego przecinka.

Po chwili googlania, znalazłem taką oto wiadomość:

According to RFC 2109, commas aren't allowed in the cookie value and should be encoded.

Jak się później okazało, Railsy po prostu zachowują się poprawnie ;) więc musiałem nie ładować do ciastka przecinków.

Okazało się to bardzo proste, ponieważ między ciastkiem a warstwą aplikacji mam jeszcze warstwę abstrakcji, w której dzięki niewielkiej zmianie, zamieniam wszystkie przecinki na pauzy w taki sposób:

value = (String(value)).replace(/\,/gi,'-');

Następnie przy odczycie, robię to samo tylko w drugą stronę:

ret = ret.replace(/\-/gi,',');

Dodam tylko, że w zawartości ciastka, nie powinno być także poniższych znaków:

()<>@;:\"/[]?={}

oraz spacji i tabulatorów.

Rails, email i Errno::ECONNREFUSED (Connection refused – connect(2)):

Wrzucając system na produkcję i testując działanie mailingu, natknąłem się na taki bład podczas wysyłania:

Errno::ECONNREFUSED (Connection refused - connect(2)):

Jak później się okazało, jeśli chcemy wysyłać maile z zewnętrznego serwera SMTP (a zwłaszcza jeśli to jest Microsoft Exchange ;) ), musimy zmienić metodę wysyłania emaili.

W pliku /config/production.rb umieszczamy taką oto linijkę:

ActionMailer::Base.delivery_method = :sendmail

Od teraz zamiast korzystać z :smtp, w środowisku produkcyjnym będzie łączyło się z serwerem za pomocą sendmaila.

Jeśli chodzi o środowisko developerskie i testowe, zostawiłem domyślne smtp ponieważ z jakiegoś powodu z lokalnego serwera bardzo długo łączyło się z serwerem pocztowym. A w środowisku testowym nie odgrywa to większej roli.

Copyright © 2026 Closer to Code

Theme by Anders NorenUp ↑