Rails validation :if => Proc.new or lambda?

前端 未结 1 1624
我在风中等你
我在风中等你 2020-12-23 18:14

I have found that in all examples (include rails documentation) that I have seen for the :if option of validation methods uses Proc.new instead of lambda, for example

<
相关标签:
1条回答
  • 2020-12-23 18:31

    Both seems to be desirable behavior for :if option mentioned above, is there anything I am missing?

    I'm guessing that:

    It's more desirable to allow Procs as they don't care about the number of arguments. So I could easily write any of the below:

    validates_presence_of :name, :if => Proc.new{|f| f.display_name.blank? }    # I care about 'f' here as I need it to check something.
    

    ... and:

    validates_presence_of :secret_sauce, :if => Proc.new{ MyApp::REQUIRE_SECRET_SAUCE }    # I don't care about any arguments being passed in.
    

    This may seem like a minor thing, but I guess it adds to the flexibility.

    0 讨论(0)
提交回复
热议问题