update または create アクションで生成された SQL 文字列を格納する方法を探しています。.to_sql
の最後に追加しようとしましたが、エラー (またはそのようなもの)update_attributes
が返されます。TrueClass
私が見逃しているものはありますか?
1880 次
2 に答える
3
簡単に言うと、ActiveRecordのexecuteメソッドをオーバーライドする必要があります。そこで、ロギング用のロジックを追加できます。
connection = ActiveRecord::Base.connection
class << connection
alias :original_exec :execute
def execute(sql, *name)
# try to log sql command but ignore any errors that occur in this block
# we log before executing, in case the execution raises an error
begin
file = File.open(RAILS_ROOT + "/log/sql.txt",'a'){|f| f.puts Time.now.to_s+": "+sql}
rescue Exception => e
;
end
# execute original statement
original_exec(sql, *name)
end
end
クレジット:
于 2012-10-23T19:56:13.783 に答える
2
これらのメソッドは両方ともブール値を返します。to_sql
ブール値で呼び出すことはできません。
于 2012-10-23T19:16:05.610 に答える