更新しました
わかりました、これはあなたが探しているものです:
User.find(params[:id]).attributes_before_type_cast["preferences"][:value]
これにより、文字列がシリアル化された形式で返されます。
これは、私が見つけることができる最も近いものです。データベースからオブジェクトを取得している場合は、機能しません。
質問を読み間違えてすみません。これは、ユーザーモデルからも使用できます。
他の方法が誰かに役立つ場合に備えて、古い答えを残しておきます。
古い答え
質問を確実に理解するために、テーブルからの生データが必要です。Railsがシリアル化してデータベースに配置するデータ。
元。入れ['site_id','last_update','last_restart']
て取得する"---\n- site_id\n- last_update\n- last_restart\n"
とデータベースに入れて保存します。これをデータベースから取得"---\n- site_id\n- last_update\n- last_restart\n"
します。
わかりました、それはデータベースからいくらかの狂信を取りました、しかしあなたはそうすることができます。
devise_table_preferences
プロジェクトでは、次のように、特定の順序でテーブルに表示する設定を一覧表示するシリアル化された配列呼び出しがあります。
user.devise_table_preferences = ['site_id','last_update','last_restart']
シリアル化されたビューは次のようになります。
"---\n- site_id\n- last_update\n- last_restart\n"
上記の方法を使用して、次のようなクエリを作成しました。
preference = ActiveRecord::Base.connection.execute("SELECT devise_table_preferences FROM users WHERE id = #{@user.id}")
次のようにコンソールにオブジェクトを返します。
preference = #<Mysql2::Result:0x007fe4cdf34850>
ランニング:
preference.first[0]
私にこれをくれた:
"---\n- site_id\n- last_restart\n"
私はそれが大きな回避策であることを知っていますが、それは間違いなくあなたのデータをシリアル化された方法で提供します。それがあなたを助けることを願っています。