我目前正在制作这样的协会:
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
我有以下协会:@H_502_5@
项目@H_502_5@
has_many :roles,:dependent => :destroy has_many :users,:through => :role
has_many :roles,:dependent => :destroy has_many :projects,:through => :role
角色@H_502_5@
belongs_to :user belongs_to :project belongs_to :role_name
ROLENAME@H_502_5@
has_many :roles
当我试图通过我的表单破坏用户关联什么都没发生时,有什么想法来解决这个问题?
或者添加删除链接到我的show块?@H_502_5@
解决方法
尝试将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