In PostgreSQL is de uitdrukking extract(day from time_from) retourneert een getal van het type double, dat de dag van de maand vertegenwoordigt. Zaterdag is duidelijk geen geldige dubbel.
Als je het argument voor where() . nodig hebt om de string 'Saturday' te matchen (om overeen te komen met de dag van de week), gebruik dan de to_char() functie.
user_calendars.where("trim(to_char(time_from, 'Day')) = ? ", next_day)
Je hebt trim() . nodig , omdat dit soort aanroep naar to_char() is opgevuld tot 9 tekens.
Case is significant voor het argument 'Dag'. Als u het intoetst als 'dag', komt de geretourneerde waarde niet overeen met 'zaterdag'. In plaats daarvan een uitdrukking zoals to_char(time_from, 'day') zal iets teruggeven als 'zaterdag'.