0

:last_request_at, :null => false というユーザーの属性があります

サインアップ/作成時に、この属性を現在の時刻に設定する必要があります。でも方法がわからない?

たぶんサインアップフォームの隠しフィールド?はいの場合、それはどのように見えますか?または、Devise はサインアップ/作成時に追跡可能な属性を現在の時刻にどのように設定するのでしょうか?

編集

これをユーザーモデルに入れました:

before_save :set_last_request

def set_last_request
  self.update_attribute(:last_request_at, Time.now)
end

しかし、私は得る:

stack level too deep
4

2 に答える 2

2

コントローラーアクションで属性を設定します。スタックレベルが深すぎるというエラーは、最後にupdate_attribute呼び出しがあるためsaveです。を無限に呼び出してset_last_requestいます。

コントローラーアクションを呼び出す@record.last_request_at = Time.nowか、 before_save フックを変更して do self.last_request_at = Time.now.

于 2012-06-18T16:43:57.137 に答える
0

Trackableモジュールを見てください:

サインイン数、タイムスタンプ、IP アドレスを追跡します。

于 2012-06-18T16:03:29.120 に答える