On Thu, May 30, 2013 at 2:33 PM, Amitav Mohanty <amitavm...@gmail.com> wrote:
Hey
I initially posted this idea on Github where I was suggested by Steve to post it here. The idea is as follows.With the current definition of blank? as defined in https://github.com/rails/rails/blob/2a371368c91789a4d689d6a84eb20b238c37678a/activesupport/lib/active_support/core_ext/object/blank.rb#L16 false.present? returns false. The documentation mentions it clearly too. However, I was of the opinion that a value of false is still a value and there probably should return true when checked for presence.When an array is empty, it does not contain any valid values and thus is blank. However, false is a valid value for a boolean variable. So, probably false.present? should not be false.This is of course just my opinion. I know I can always check for nil?. If there are valid scenarios where false.present? returning a value of false is useful/intuitive, I would be glad to know.I have explained at http://intosimple.blogspot.in/2013/05/rails-falsepresent-being-false-is-not.html one scenario where I thought false.present? returning true would have been more intuitive. Please have a look and let me know your ideas.Thanks and regards,Amitav--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-co...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
I understand where you're coming from,and I completely disagreefalse is blank, but it's not nil,
however, in some cases, falseness should not be validated
"validates_presence_of :aggrees_with_contract" is correct, requires the user to check the contract"validates_presence_of :displays_photo_for_guests" is incorrect, because it's only a question and it's ok if the user forgets or chooses not to mark[false, nil].map &:blank?=> [true, true][false, nil].map &:present?=> [false, false][false, nil].map &:nil?=> [false, true]
I understand where you're coming from,and I completely disagreefalse is blank, but it's not nil,however, in some cases, falseness should not be validated"validates_presence_of :aggrees_with_contract" is correct, requires the user to check the contract"validates_presence_of :displays_photo_for_guests" is incorrect, because it's only a question and it's ok if the user forgets or chooses not to mark
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-co...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
While technically you could say that "false" is "present", it would be really unintuitive for most of the people as present? is supposed to be just opposite of blank? and is used to check for truthiness. Additionally present? is used in Rails app for a long time, so even if part of Rails Core had agreed with your arguments, I would be really surprised seeing this changed.
On Tue, Jun 25, 2013 at 7:10 PM, Matt Jones <al2...@gmail.com> wrote:
On Jun 25, 2013, at 7:36 AM, James Pinto wrote:I understand where you're coming from,and I completely disagreefalse is blank, but it's not nil,however, in some cases, falseness should not be validated"validates_presence_of :aggrees_with_contract" is correct, requires the user to check the contract"validates_presence_of :displays_photo_for_guests" is incorrect, because it's only a question and it's ok if the user forgets or chooses not to markIf it's OK if the user doesn't send this value, *why* are you validating for it to be present? Set a default for your boolean column (which you should be doing anyways :) ) and have a nice life.--Matt Jones--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-co...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/groups/opt_out.
--
Piotr Sarnacki
http://piotrsarnacki.com
--
You received this message because you are subscribed to a topic in the Google Groups "Ruby on Rails: Core" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rubyonrails-core/A-1oZuShUaM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rubyonrails-co...@googlegroups.com.