4

ロードを変更し、別の ID を使用してリソースをロードするようにリソースを承認するにはどうすればよいですか。例のために。

私のルートは

http://localhost:3000/organization/user/12/event/20/edit

私のイベントコントローラーでは、使用してイベントにアクセスし:event_id、使用してユーザーにアクセスしています:id

イベントコントローラーで、イベントをロードする代わりにload_and_authorize_resource使用を変更するにはどうすればよいですか:event_id:id

4

2 に答える 2

4

リソースは、まだインスタンス変数にロードされていない場合にのみ、インスタンス変数にロードされます。これにより、別の before_filter でロードがどのように行われるかを簡単にオーバーライドできます。

class EventsController < ApplicationController
  before_filter :find_event
  load_and_authorize_resource

  private

  def find_event
    @event = Event.find(params[:event_id])
  end
end

ドキュメントで詳細を読む: https://github.com/CanCanCommunity/cancancan/wiki/Authorizing-controller-actions

于 2015-04-15T10:01:13.040 に答える