2013-03-10 13 views
0

我的用戶有一個組分配給每個組。如果管理員刪除他們組他們在我需要將他們下移到最基本的gorup「成員」,無法刪除。Before_destroy過濾器現在調用給定的方法

現在我知道了該方法的工作原理和路由和控制器但是因爲最初我叫從控制器的方法moveUsers依次是:

user = User.find(id) 
user.moveUsers 
user.delete 

但是我想單獨這一點,並保持控制簡約的:Rails3中辦法?

控制器的方法:

def destroy 
    group = Group.find(params[:id]) 

    if group.delete 
     redirect_to groups_url, :notice => "Group deleted." 
    else 
     redirect_to :back, :notice => "Cannot delete group." 
    end 

    end 

型號:

class Group < ActiveRecord::Base 
    before_destroy :moveUsers 

    validates :title, :presence => :true, :uniqueness => true 
    has_many :user 

    # Get the number of users associated with the group & title 
    def getUserCount 
     return User.where(:group_id => self.id).length 
    end 

    # If group is deleted move all of its users 
    # to core group: Members (id = 1) 
    private 
    def moveUsers 
     users = User.where(:group_id => self.id) 

     users.each do |user| 
      user.group_id = 1 
      user.save 
     end 
    end 
end 

回答

相關問題