2013-08-26 9 views
0

플러그인 개발에 도움이 필요합니다. 사용자보기/편집 양식보기에서 후크를 만들고 ballance_amount을 추가하여 양식을 작성하고 "ballance_amount"=>"1"을 작성했습니다.Redmine : 플러그인에서 제어기 동작 확장

사용자 컨트롤러에서 어떻게 기본 업데이트 동작을 확장 할 수 있습니까?

def update_with_ballance 
    ballance.amount = params[:user][:ballance_amount].to_f #I have ballance association 
end 

을 그리고이 얻을 :

base.class_eval do에서

나는 InstanceMethods에서 alias_method_chain :update, :ballance 을 추가 한

NameError (undefined local variable or method `params' for #<User:0x007f972e9379d0>): 
app/controllers/users_controller.rb:144:in `update' 

가 어떻게 PARAMS를 가져올 수

?

답변

0

Redmine 자체에서 대량 할당 코드를 사용할 수 있어야합니다. balance_amountsafe_attribute으로 간주되는 경우 Line 135 in the UsersController에서 처리해야 확장 프로그램의 간단한 진입 점을 제공 할 수 있습니다. 그것을 달성하기 위해, 사용자 모델에 다음과 같이 패치를 추가 :이 예는 도움이되지 않는 경우가 더 많은 코드 조각을 제공 할 수 있다면

module RedmineBalancePlugin::UserPatch 
    def self.included(base) 
    base.class_eval do 
     safe_attributes 'balance_amount' 

     include InstanceMethods 
    end 
    end 

    module InstanceMethods 
    # This method is indirectly called when creating or updating a User 
    def balance_amount=(amount) 
     balance.amount = amount 
    end 

    # This could be useful in your view patch, but maybe not 
    def balance_amount 
     balance.amount 
    end 
    end 
end 

User.send(:include, RedmineBalancePlugin::UserPatch) 

, 그것은 도움이 될 것입니다 - 예를 들어, 문제를 재현하고 분석하기 쉽도록 UsersController에 대한 전체 패치입니다.