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
不知道我怎麼錯過了。謝謝像魅力一樣工作。 – 2013-03-10 21:36:49
沒問題。不要猶豫,接受答案;) – vdaubry 2013-03-10 21:40:07