Aktualisiert
Ok, das ist, was Sie suchen:
User.find(params[:id]).attributes_before_type_cast["preferences"][:value]
Diese die Zeichenfolge in seiner serialisierten Form zurückkehren wird.
Das ist das nächste, was Sie bekommen können, dass ich finden kann, es wird nicht funktionieren, wenn Sie bereits das Objekt aus der Datenbank gezogen haben.
Entschuldigung, dass Sie Ihre Frage falsch gelesen haben. Sie können dies auch vom Benutzermodell verwenden.
Lassen Sie die alte Antwort für den Fall, dass der andere Weg es für jemanden hilfreich ist.
Alte Antwort
Nur um sicher zu sein, verstehe ich die Frage, wollen Sie die Rohdaten aus der Tabelle. Die Daten, die Schienen serialisiert und in die Datenbank einfügt.
EX. Sie setzen ['site_id','last_update','last_restart']
und Sie erhalten "---\n- site_id\n- last_update\n- last_restart\n"
und es wird in die Datenbank aufgenommen und gespeichert. Sie möchten dies abrufen: "---\n- site_id\n- last_update\n- last_restart\n"
aus der Datenbank.
Ok, es dauerte etwas fanagaling von der Datenbank, aber Sie können es so machen.
In einem Projekt Ich habe einen serialisierte Array Anruf devise_table_preferences
, die die Präferenzen listen in einer Tabelle in einer bestimmten Reihenfolge, wie so, anzuzeigen:
user.devise_table_preferences = ['site_id','last_update','last_restart']
Die daraus serialisierten Ansicht ist etwa so:
"---\n- site_id\n- last_update\n- last_restart\n"
über Ihre Methode verwenden, machte ich eine Abfrage wie folgt:
preference = ActiveRecord::Base.connection.execute("SELECT devise_table_preferences FROM users WHERE id = #{@user.id}")
Es gibt ein Objekt in der Konsole wie folgt:
preference = #<Mysql2::Result:0x007fe4cdf34850>
Running:
preference.first[0]
gab mir dieses:
"---\n- site_id\n- last_restart\n"
Ich weiß, ihr eine große Arbeit um, aber es wird auf jeden Fall geben Sie Ihre Daten in seiner serialisierten Art und Weise. Hoffe, dass es dir hilft.
Ich weiß, ich kann das tun (wie ich in der Frage sagte). Ich möchte nur wissen, dass es möglich ist, vom Benutzermodell zu kommen oder nicht. Danke trotzdem. :) – Chamnap
@Chamnap Ich habe meine Antwort bearbeitet, um hoffentlich deine Frage zu beantworten, siehe aktualisierter Teil der Antwort. Hoffnung, die dir mehr hilft als der ältere Teil. –
Ich versuche es, aber es funktioniert nicht. Ich habe den Quellcode überprüft, es gibt einfach die '@ Attribute' zurück, die bereits serialisiert sind. – Chamnap