lol, 沒想過可以這樣
```ruby
user = User.find(id)
user.extend(User::RegistrationContext)
```
```ruby
# app/models/user/registration_context.rb
module User::RegistrationContext
def self.extended(model)
class << model
validates :terms_of_service_accepted, acceptance: true
end
end
attr_accessor :terms_of_service_accepted
end
```
```ruby
user = User.new
user.extend(User::RegistrationContext)
user.terms_of_service_accepted = "0"
user.valid?
=> false
user.errors.messages[:terms_of_service_accepted]
=> ["must be accepted"]
```
哈,雖然應該不會去用這種做法,但還是學習了XD
https://karolgalanciak.com/blog/2018/06/24/rails-and-conditional-validations-in-models/
沒有留言:
張貼留言