ruby-on-rails-3 – 活动管理员has_many通过删除关联

前端之家收集整理的这篇文章主要介绍了ruby-on-rails-3 – 活动管理员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

我有以下协会:

项目

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

ROLENAME

has_many :roles

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

解决方法

尝试将accepts_nested_attributes_for添加到Project模型(并将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

猜你在找的Ruby相关文章