Validation arguments

34 views
Skip to first unread message

Roman

unread,
Apr 11, 2013, 9:59:26 AM4/11/13
to rubyonra...@googlegroups.com
Hi,
What do you think about the following way to specify validations?

    validates name: {presence: true}, email: {uniqueness: true, presence: true}

or even

    validates name: [:presence], email: [:uniqueness, :presence]

Right now this requires 2 calls to `validates`

    validates :user, presence: true
    validates :email, uniqueness: true, presence: true

Rafael Mendonça França

unread,
Apr 11, 2013, 10:03:21 AM4/11/13
to rubyonra...@googlegroups.com
I think they are more confusing that the two calls


--
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.
 
 

Geoffrey Roguelon

unread,
Apr 11, 2013, 10:04:14 AM4/11/13
to rubyonra...@googlegroups.com
Hi,

The second version doesn't allow to pass arguments to the validation type.

You can use this syntax :

    with_options presence: true do |opts|
      opts.validates :name
      opts.validates :email, uniqueness: true
    end

Best regards.

-----
Geoffrey Roguelon

Roman

unread,
Apr 11, 2013, 10:10:44 AM4/11/13
to rubyonra...@googlegroups.com
@Rafael Imo, this syntax resembles how arguments for ActiveRecord.joins are specified.

@Geoffrey I just didn't provide an example, but it does allow:

    validates name: [:presence, format: {with: /\s+/}]

Rafael Mendonça França

unread,
Apr 11, 2013, 10:15:06 AM4/11/13
to rubyonra...@googlegroups.com
I don't like that join syntax either. ;)

Wes Gamble

unread,
Apr 11, 2013, 2:16:43 PM4/11/13
to rubyonra...@googlegroups.com
This would only be good for simple validation requirements. If there were an :if or :unless parameter on a given validation, for example, that would look kind of ugly in the one line version.

Wes

Roman Kushnir

unread,
Apr 11, 2013, 2:20:38 PM4/11/13
to rubyonra...@googlegroups.com
Sure. It's possible to make it ugly with the existing syntax as well :) This change would just add one more option, not disable all the existing ones.

Best Regards,
Roman


2013/4/11 Wes Gamble <we...@att.net>

--
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/LETEqygulLQ/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to rubyonrails-co...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages