2012-02-06 16 views
7

Jestem obecnie dokonywania stowarzyszenie tak:Aktywny Administrator has_many poprzez kasowania stowarzyszenia

show do 
    h3 project.title 
    panel "Utilisateurs" do 
    table_for project.roles do 
     column "Prenom" do |role| 
     role.user.firstname 
     end 
     column "Nom" do |role| 
     role.user.lastname 
     end 
     column "email" do |role| 
     role.user.email 
     end 
     column "Role" do |role| 
     role.role_name.name 
     end 
    end 
    end 
end 

# override default form 
form do |f| 
    f.inputs "Details" do # Project's fields 
    f.input :title 
    f.input :code 
    end 

    f.has_many :roles do |app_f| 
    app_f.inputs do 
     # if object has id we can destroy it 
     if app_f.object.id 
     app_f.input :_destroy, :as => :boolean, :label => "Supprimer l'utilisateur du projet" 
     end 
     app_f.input :user,  :include_blank => false, :label_method => :to_label 
     app_f.input :role_name, :include_blank => false 
    end 
    end 
    f.buttons 
end 

Mam następujące skojarzenia:

Projektu

has_many :roles, :dependent => :destroy 
has_many :users, :through => :role 

użytkownika

has_many :roles, :dependent => :destroy 
has_many :projects, :through => :role 

Rola

belongs_to :user 
belongs_to :project 
belongs_to :role_name 

RoleName

has_many :roles 

Kiedy próbuję zniszczyć stowarzyszenie użytkownika przez moją postać nic się stało, każdy pomysł, aby rozwiązać ten problem? Lub dodać link do usunięcia z mojego bloku programu?

Odpowiedz

16

Spróbuj dodać accepts_nested_attributes_for do modelu projektu (i roles_attributes do attr_accessible):

class Project < ActiveRecord::Base 
    has_many :roles, :dependent => :destroy 
    has_many :users, :through => :role 
    accepts_nested_attributes_for :roles, :allow_destroy => true 

    attr_accessible :roles_attributes, (+ all you had here before) 
    ... 
end 
+0

Wielkie dzięki :) – Awea

+0

Dziękuję, dziękuję, dziękuję :) –

4

allow_destroy: true jest źródłem tego problemu.

Powiązane problemy