2012-02-06 18 views
7

Şu anda yapıyorum dernek: Aşağıdaki birleşime sahipAktif yönetici has_many

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 

:

Proje

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

Kullanıcı

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

Rolü

belongs_to :user 
belongs_to :project 
belongs_to :role_name 

RoleName

has_many :roles 

gerçekleşmesini benim form hiçbir şey aracılığıyla kullanıcı ilişkiyi yok etmeye çalışırken, bir fikrin bu çözmek için? Veya gösterme blokuma sil bağlantısını eklemek ister misiniz?

cevap

16

(ve roles_attributes attr_accessible kadar) Project modeline accepts_nested_attributes_for eklemeyi deneyin:

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

Çok teşekkürler :) – Awea

+0

Teşekkür ederim, teşekkürler, teşekkürler :) –

4

allow_destroy: true bu konuda köküdür.

İlgili konular