Rails:跳过after_create
Rails: Skip after_create
我有 2 个模型:
class User < ActiveRecord::Base
has_one :client
end
class Client < ActiveRecord::Base
belongs_to :user
end
我通常先创建一个 user
,然后有一个 after_create
过滤器,以便在创建 user
之后创建 client
。
after_create :create_client
我有一个 client
存在的新案例,我想在 client
已经存在的 user
之后创建 。在这种情况下,当我创建 user
时,我想跳过 after_create
过滤器。
我知道我需要 after_create :create_client, unless: ____
但我不确定如何区分它。
对于这种情况,您可以使用 attr_accessor
创建一个实例变量
class User < ActiveRecord::Base
attr_accessor :has_client
...
end
并且您可以将布尔值分配给此变量并使用 if condition
限制 after_create
class User < ActiveRecord::Base
...
after_create :create_client, unless: :has_client
...
end
我有 2 个模型:
class User < ActiveRecord::Base
has_one :client
end
class Client < ActiveRecord::Base
belongs_to :user
end
我通常先创建一个 user
,然后有一个 after_create
过滤器,以便在创建 user
之后创建 client
。
after_create :create_client
我有一个 client
存在的新案例,我想在 client
已经存在的 user
之后创建 。在这种情况下,当我创建 user
时,我想跳过 after_create
过滤器。
我知道我需要 after_create :create_client, unless: ____
但我不确定如何区分它。
对于这种情况,您可以使用 attr_accessor
创建一个实例变量class User < ActiveRecord::Base
attr_accessor :has_client
...
end
并且您可以将布尔值分配给此变量并使用 if condition
class User < ActiveRecord::Base
...
after_create :create_client, unless: :has_client
...
end