2
class User < ActiveRecord::Base
  attr_accessor :password

  Rails.logger.info "xxy From outside" 
  def before_create
      Rails.logger.info "xxy From inside the before_create" 
  end
end

コントローラーを呼び出すUser.saveと、開発ログが取得されますが、そうではxxy From outsideないxxy From inside the before_createので、廃止されたと考えるのは正しいでしょうか?

その場合、保存する前にモデル メソッドを呼び出すにはどうすればよいですか? またはxxy From outside、ログに記録されているように、モデルのインスタンスが保存されたときにすべてのメソッドが自動的に呼び出されることを意味しますか?

4

3 に答える 3

11

彼らはまだそこにいます。あなたはそれを間違っているようです。これは正しい方法です:

# Define callback:
before_create :method_name

# and then:
def method_name
  Rails.logger.info "I am rad"
end
于 2013-09-25T03:39:57.813 に答える
0

彼らはまだそこにいます。メソッドとして定義するのではなく、ブロックを取るだけです。

  Rails.logger.info "xxy From outside" 
  before_create do
    Rails.logger.info "xxy From inside the before_create" 
  end
于 2015-04-10T22:50:20.467 に答える