The if clause does conditional validation:  the validation only runs
when the if clause is true; when the if clause is false the validation
isn't even checked.  I don't think that's what you want.

You're probably best off with validates_each:

http://guides.rubyonrails.org/active_record_validations_callbacks.html#validates_each

You can then put your conditions inside the block and it should work
as you expect.

Bryan


On Thu, Nov 22, 2012 at 7:57 AM, tonym <[email protected]> wrote:
> Hi all,
>
> not specifically a Hobo thing, but I can't find a resolution on other
> forums...
> I'm trying to validate that a field is not null, if a specific category has
> been picked from the has_many association.
> Model speaks for itself (this is simplified, not all my code)...
>
>   fields do
>    food_range :text
>    timestamps
>   end
>
>   has_many :categories, :through => :category_assignments, :accessible =>
> true
>   has_many :category_assignments, :dependent => :destroy
>
>   validates :food_style, :presence => true, :if =>
> "self.categories.include?(:id => 1)"
>
> All I'm trying to do is check if :id => 1 is included in the list of
> categories.  This always returns false at the moment.
>
> Any ideas?
>
> Cheers, Anthony.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Hobo Users" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/hobousers/-/MnwmPW_gHD8J.
> 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/hobousers?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" 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/hobousers?hl=en.

Reply via email to