2016-10-12 9 views
3

activerecordオブジェクトがある場合、レコードを保存する前にに挿入される対応するSQL値を取得する方法がありますか??たとえば、datetime型の列がある場合、それは何らかの文字列形式に変換され、json属性もシリアル化されるため、これらの値を事前に知る方法はありますか?対応するSQL値に対応する有効レコード属性を取得する方法

+0

はいを​​必要とするSQL値が含まれていますが、AREL掘り下げなければならないだろうActiveRecordが本当にこの機能を持っていないので、どのようにレールがクエリを実行するのですか? https://www.viget.com/articles/composable-sql-queries-in-rails-using-arel – max

+0

アドバイスをありがとう、私の質問のための私の答えを確認してください:) –

答えて

3

私はそれを見つけたと思う:)

最初のデータベースの値を取得し、それを引用します。

は、我々は本モデルがあるとします。ブック(タイトル、published_at、...)

book = Book.new(title: "Some title", published_at: Time.now) 
value_for_database = book.instance_eval("@attributes")["published_at"].value_for_database 
quoted_value = Book.connection.quote(value_for_database) 

quoted_valueは今、私は:)

+0

素晴らしい!偉大な研究、+1 –

関連する問題