jim <jimr6007@...> writes:
>
> Rails version 2.3.8
>
> I have a ticket model that has many comments
>
> the comments have an attribute called "admin" -- is this a
comment
> added by an administrator
This seems weird. Why not simply have a comment owned by a user, which may
have an admin flag?
>
> the ticket has an attribute called "admin_email_address"
Again weird. Comments don''t have email addresses - administrators do.
>
> I want to validate when saving the ticket and say "if I have a new
> admin comment, make sure I have an admin_email_address"
I suggest you place conditional validations on the user model to ensure
administrators have an email address specified.
>
> In my ticket model, the method to do the validate looks like the
> following and works as expected except for one thing. If the :_destroy
> flag on the comment was set in my comment view partial (I want to
> delete a comment), it seems like this iterating over the comments with
> new_record? somehow resets that :_destroy flag.
>
> Am I doing something wrong here? Or, could someone give me a hint on a
> more simple way to do this validation.?
>
> Thanks !!
>
> new_admin_comments = false
> self.comments.each do |comment|
> new_admin_comments = true if comment.new_record? &&
> comment.admin_comment == true
> end
I am not sure how selecting ticket.comments will ever return
comment.new_record? since they are already in the database.
Anyway, why not handle this in the view? If the comment is owned by an admin,
then alter the display.
>
> if admin_email.blank? && new_admin_comments == true
> errors.add_to_base("Admin email address required.")
> end
>
This is not where it belongs. Try:
class User < ActiveRecord::Base
validates_presence_of :email, :if => :admin
end
--
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.