0

モジュールを作成しました。基本的にやりたいことは、

このモジュールには、before_filter のように機能する関数があります。この関数はロジックを実行し、何を実行すべきかを決定します。例

class JobsController < ApplicationController
  include Mymodule
  authorize_resources

  def create
  end

  def update
  end

end

module Mymodule
  def authorize_resources
     current_controller = params[:controller]
     if current_controller == 'jobs'
      //some logic
     end
  end
end

ジョブ、ユーザーなど、関数が配置されている場所に基づいてコントローラー名を実際に自動的に検出するにはどうすればよいですか。これは CanCan に似ていますが、自分で作成したいと思います。

また、例外を発生させたり、失敗した場合にパスに redirect_to を発生させたりするにはどうすればよいですか? Rails クラスを拡張する必要がありますか?

def authorize_resources
  if current_controller.class == 'jobs'
    //logic
  end
end
4

1 に答える 1

1

次のように変更ifします。

if(current_controller == JobsController)

params[:controller]クラス自体の場合、および

if(current_controller.class == JobsController)

変数が のインスタンスである場合JobsController

于 2013-03-18T03:18:39.740 に答える