【问题标题】:Active admin has_many through delete association活动管理员 has_man 通过删除关联
【发布时间】:2012-02-27 20:18:36
【问题描述】:

我目前正在像这样进行关联:

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

我有以下关联:

项目

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

用户

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

角色

belongs_to :user
belongs_to :project
belongs_to :role_name

角色名称

has_many :roles

当我试图通过我的表单破坏用户关联时,什么也没发生,有什么办法解决这个问题吗? 或者将删除链接添加到我的节目块?

【问题讨论】:

    标签: ruby-on-rails-3 has-many-through activeadmin


    【解决方案1】:

    allow_destroy: true 是这个问题的根源。

    【讨论】:

      【解决方案2】:

      尝试将accepts_nested_attributes_for 添加到您的项目模型(并将roles_attributes 添加到 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多