0

プラグイン開発の助けが必要です。ユーザー/編集フォームビューでフックを作成し、ballance_amountフォームに追加して"ballance_amount"=>"1".

ユーザーコントローラーでデフォルトの更新アクションを拡張するにはどうすればよいですか?

base.class_eval do追加しましalias_method_chain :update, :ballanceInstanceMethods:

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

そして、これを取得します:

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

パラメータを取得するにはどうすればよいですか?

4

1 に答える 1

0

Redmine自体で大量割り当てコードを利用できるはずです。UsersController の 135 行目は、balance_amountsafe_attribute. これを実現するには、次のようなパッチを User モデルに追加します。

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 への完全なパッチなど) を提供していただけると助かります。

于 2013-08-26T19:24:32.783 に答える