On Nov 29, 2011, at 4:25 PM, Frederick Cheung wrote:
> On Nov 29, 5:37 pm, Craig White <[email protected]> wrote:
>> Rails 3.1 and I'm working through activeldap which is not exactly
>> ActiveRecord
>>
>> class Group < ActiveLdap::Base
>> def validate
>> errors.add(:base, "You must enter a value for the 'Common name'") unless
>> self.cn.to_s != ''
>> errors.add(:base, "You must enter a value for the 'GID Number'") unless
>> self.gidNumber.to_s != ''
>> errors.add(:base, "You must enter a value for the 'Description'") unless
>> self.description.to_s != ''
>> errors.add(:base, "You must enter a value for the 'sambaGroupType'")
>> unless self["objectclass"].include? "sambaGroupMapping"
>> return errors
>> end
>>
> Everytime validate is called you're adding errors, nothing is
> resetting errors so it stands to reason that you're going to get
> duplicate (or triplicate if validate was called again etc) error
> messages.
> Given that activeldap seems to be using active model for its
> validations stuff it's going to be very close to active record, so you
> shouldn't be calling validate directly - call group.valid? to see if
> the object is valid and if it isn't look at group.errors
----
thanks Fred...
valid? indeed works and so does errors and yes, it obviously uses ActiveModel
now but since it's LDAP but not user friendly, it's not for the uninitiated.
@group.errors is a mess and @person.errors - fahgettaboutit and will not be
useful to someone trying to use the application so I ended up using .to_a.uniq
to toss out the dupes...
I finally just worked it out a minute ago with this (in my Person model)
flash[:error] = @person.validate['base'].to_a.uniq.join("<br />")
apparently have to use .html_safe in my view to view the flash[:error] and it's
reasonably friendly now.
Craig
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.