0

背景: 私は and を使用して Web アプリを構築していSinatraますActiveRecord( https://github.com/collectiveidea/acts_as_auditedacts_as_auditedに従って)。のドキュメントは、私が使用することを想定しているため、必要な移行を生成するために使用することを想定しています。withを使用した例は見つかりませんでした。acts_as_auditedRailsRailsacts_as_auditedSinatra

だから私の質問Sinatra: 誰かがandActiveRecordを使用する例を教えてもらえますかacts_as_audited?

4

1 に答える 1

2

Audit.as_userメソッドを使用してこれを機能させることができました。このメソッドを使用すると、渡したユーザー オブジェクトによって変更が行われたかのように、レコードを監査できます。

簡単な例を次に示します。

# This is my User model, I want to audit email address changes to it.
class User < ActiveRecord::Base
  acts_as_audited
  # user has :email attribute
  ...
end

# This is what I would call in my Sinatra code.
# user is an instance of my User class
...
Audit.as_user(user) do
  user.audit_comment = "updating email from sinatra"
  user.update_attribute(:email, 'foo@bar.com')
end
...

より複雑な例...

# Now I have a User model and a Comments model and I 
# want to audit when I create a comment from Sinatra
class User < ActiveRecord::Base
  has_many :comments
  acts_as_audited
  ...
end

class Comment < ActiveRecord::Base
  belongs_to :user
  acts_as_audited
  # has a :body attribute
  ...
end

# This is what I would call in my Sinatra code.
# Again, user is an instance of my User class
...
Audit.as_user(user) do
  user.comments.create(
    :body => "Body of Comment", 
    :audit_comment => "Creating Comment from Sinatra"
  )
end
于 2011-10-06T19:14:34.003 に答える