Updated
Ok, to jest to, czego szukasz:
User.find(params[:id]).attributes_before_type_cast["preferences"][:value]
ta zwróci ciąg w postaci szeregowej.
To jest najbliższy, jaki mogę znaleźć, ale nie zadziała, jeśli obiekt został już pobrany z bazy danych.
Przepraszamy za błędne odczytanie Twojego pytania. Możesz użyć tego również w modelu użytkownika.
Pozostawienie starej odpowiedzi w górę, na wypadek, gdyby inna metoda była dla kogoś pomocna.
Old Odpowiedź
Wystarczy, aby mieć pewność, rozumiem pytanie, chcesz surowych danych z tabeli. Dane, które railsy serializują i umieszczają w bazie danych.
EX. Wstawiasz ['site_id','last_update','last_restart']
i otrzymujesz "---\n- site_id\n- last_update\n- last_restart\n"
i jest on umieszczany w bazie danych i zapisywany. Chcesz odzyskać: "---\n- site_id\n- last_update\n- last_restart\n"
z bazy danych.
Dobrze, zajęło mi trochę fanagallingu z bazy danych, ale możesz to zrobić tak.
W projekcie mam zserializowaną połączenia tablicy devise_table_preferences
z listą preferencji wyświetlanych w tabeli w określonej kolejności, tak jak poniżej:
user.devise_table_preferences = ['site_id','last_update','last_restart']
szeregowej widok z niego jest tak:
"---\n- site_id\n- last_update\n- last_restart\n"
Stosując metodę powyżej, zrobiłem kwerendę tak:
preference = ActiveRecord::Base.connection.execute("SELECT devise_table_preferences FROM users WHERE id = #{@user.id}")
Zwraca obiekt w konsoli tak:
preference = #<Mysql2::Result:0x007fe4cdf34850>
Bieg:
preference.first[0]
Dał mi to:
"---\n- site_id\n- last_restart\n"
Znam Jego wielką pracę wokół, ale na pewno to dać Twoje dane w serializowany sposób. Mam nadzieję, że to pomaga.
Wiem, że może to zrobić (jak powiedziałem w pytaniu). Chcę tylko wiedzieć, że można uzyskać z modelu użytkownika, czy nie. Dzięki i tak. :) – Chamnap
@Chamnap Edytowałem swoją odpowiedź, aby, mam nadzieję, odpowiedzieć na twoje pytanie, zobacz zaktualizowaną część odpowiedzi. Mam nadzieję, że pomaga ci więcej niż starsza część. –
Próbuję, ale to nie działa. Sprawdziłem kod źródłowy, zwracam po prostu '@ attributes', że jest już serializowany. – Chamnap