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.

Reply via email to