1

我的应用程序要求Courseswith Projectswith我需要确保每次不会出现超过一次,我认为我可以通过 Rails 验证来做到这一点,但我所拥有的似乎并不想工作。谁能帮我解决这个问题?GroupsUsers.usersproject

以下给了我:

NoMethodError in Admin::GroupsController#create
undefined method `text?' 对于零:NilClass

class Group < ActiveRecord::Base
  attr_accessible :name, :project_id
  #has_and_belongs_to_many fields
  attr_accessible :user_ids

  has_and_belongs_to_many :users
  belongs_to :project, :inverse_of => :groups

  validates :name, :project_id, :presence => true
  validates :user_ids, :uniqueness => { :scope => :project_id,
                                        :message => "Users can only be in one group per project." }
end

ActiveAdmin 组对象:

ActiveAdmin.register Group do

  form do |f|
    f.inputs do
      f.input :name
      f.input :users, :as => :check_boxes
      f.input :project
    end
    f.buttons
  end

end
4

1 回答 1

1

我会尝试

Course
  has_many :projects

Project
  has_many :groups
  has_many :users, :through => groups
  validates uniqueness_of :user

User
  has_many groups 
  has_many projects, :through => :groups

Group
  belongs_to :project
  belongs_to :group

# I stay away from has_and_belongs_to_many, not flexible later.
于 2012-08-26T01:58:39.987 回答