views:

98

answers:

1

Right down to business....

There are tasks, which have assigned users

class Task < ActiveRecord::Base
has_many :task_assignments, :dependent => :destroy
has_many :assigned_users, :through => :task_assignments, :source => :user

  validates_associated :task_assignments
end

And users have assigned tasks

class User < ActiveRecord::Base
  has_many :task_assignments, :dependent => :destroy
  has_many :assigned_tasks, :through => :task_assignments, :source => :task
end

The task_assignments table looks like this

class TaskAssignment < ActiveRecord::Base
  validates_presence_of :user, :message => 'You must add some USERS fool!' 
  belongs_to :user
  belongs_to :task
end

Those associations seem to be working well :0)

Here's the rub - when I add a new task through /tasks/new, I also want to specify a list of users assigned to that task, which the form is returning in "params[:users_list][:id]".

I can get this to work, but I don't want the form to validate unless there is at least one user selected.

I can't for the life of me figure out how to get this validation to take place in the models rather than in the create method.

As you can see, I've thrown "validates _associated :task _assignments" in the tasks method, but to no avail. I'm clearly in over my head.

Thanks for your help.

A: 

I think you have to name the parameter user_ids...

f.e.:

params[:users_ids][:id]
Lichtamberg