OSDN Git Service

Refactor: Extract method to the Member model
authorEric Davis <edavis@littlestreamsoftware.com>
Thu, 18 Mar 2010 15:49:11 +0000 (15:49 +0000)
committerEric Davis <edavis@littlestreamsoftware.com>
Thu, 18 Mar 2010 15:49:11 +0000 (15:49 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3601 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/groups_controller.rb
app/controllers/users_controller.rb
app/models/member.rb

index 96e59c2..68a0e9d 100644 (file)
@@ -138,8 +138,7 @@ class GroupsController < ApplicationController
   
   def edit_membership
     @group = Group.find(params[:id])
-    @membership = params[:membership_id] ? Member.find(params[:membership_id]) : Member.new(:principal => @group)
-    @membership.attributes = params[:membership]
+    @membership = Member.edit_membership(params[:membership_id], params[:membership], @group)
     @membership.save if request.post?
     respond_to do |format|
        format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'memberships' }
index 14930e3..f19cd78 100644 (file)
@@ -120,8 +120,7 @@ class UsersController < ApplicationController
   
   def edit_membership
     @user = User.find(params[:id])
-    @membership = params[:membership_id] ? Member.find(params[:membership_id]) : Member.new(:principal => @user)
-    @membership.attributes = params[:membership]
+    @membership = Member.edit_membership(params[:membership_id], params[:membership], @user)
     @membership.save if request.post?
     respond_to do |format|
        format.html { redirect_to :controller => 'users', :action => 'edit', :id => @user, :tab => 'memberships' }
index 3ef1afd..94751ef 100644 (file)
@@ -71,6 +71,13 @@ class Member < ActiveRecord::Base
       IssueCategory.update_all "assigned_to_id = NULL", ["project_id = ? AND assigned_to_id = ?", project.id, user.id]
     end
   end
+
+  # Find or initilize a Member with an id, attributes, and for a Principal
+  def self.edit_membership(id, new_attributes, principal=nil)
+    @membership = id.present? ? Member.find(id) : Member.new(:principal => principal)
+    @membership.attributes = new_attributes
+    @membership
+  end
   
   protected