提交 74689fda 编写于 作者: J Jon Moss 提交者: GitHub

Merge pull request #28058 from y-yagi/follow_up_to_27608

Remove deprecate passing string to `:if` and `:unless` conditional options [ci skip]
......@@ -288,7 +288,7 @@ Article destroyed
Conditional Callbacks
---------------------
As with validations, we can also make the calling of a callback method conditional on the satisfaction of a given predicate. We can do this using the `:if` and `:unless` options, which can take a symbol, a string, a `Proc` or an `Array`. You may use the `:if` option when you want to specify under which conditions the callback **should** be called. If you want to specify the conditions under which the callback **should not** be called, then you may use the `:unless` option.
As with validations, we can also make the calling of a callback method conditional on the satisfaction of a given predicate. We can do this using the `:if` and `:unless` options, which can take a symbol, a `Proc` or an `Array`. You may use the `:if` option when you want to specify under which conditions the callback **should** be called. If you want to specify the conditions under which the callback **should not** be called, then you may use the `:unless` option.
### Using `:if` and `:unless` with a `Symbol`
......@@ -300,16 +300,6 @@ class Order < ApplicationRecord
end
```
### Using `:if` and `:unless` with a String
You can also use a string that will be evaluated using `eval` and hence needs to contain valid Ruby code. You should use this option only when the string represents a really short condition:
```ruby
class Order < ApplicationRecord
before_save :normalize_card_number, if: "paid_with_card?"
end
```
### Using `:if` and `:unless` with a `Proc`
Finally, it is possible to associate `:if` and `:unless` with a `Proc` object. This option is best suited when writing short validation methods, usually one-liners:
......
......@@ -916,18 +916,6 @@ class Order < ApplicationRecord
end
```
### Using a String with `:if` and `:unless`
You can also use a string that will be evaluated using `eval` and needs to
contain valid Ruby code. You should use this option only when the string
represents a really short condition.
```ruby
class Person < ApplicationRecord
validates :surname, presence: true, if: "name.nil?"
end
```
### Using a Proc with `:if` and `:unless`
Finally, it's possible to associate `:if` and `:unless` with a `Proc` object
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册