2013-01-22 2 views
2

내 응용 프로그램에서 cancan 1.6.8을 사용하고 있습니다.rails3 cancan 사용자 정의 작업에 대한 load_resource

사용자 정의 방법으로 장바구니를 만들어야합니다. 그래서 나는 내 노선에 사용자 정의 액션을 추가했다. 예 :

resources :carts 
    collection do 
    get "new_cart" 
    post "create_cart" 
    end 
end 

어떻게 새로운 객체 ( @cart = Cart.new) 내 사용자 지정 방법에 대한 load_resource를 사용하여 (new_cart, create_cart)을 초기화?

답변

3

은 지정 작업 :new:create에 추가하여 새 리소스 작업입니다 :new. 하나를 가져 오는 대신 새 리소스를 작성하려면 여기에 액션 이름을 전달하십시오.

:

load_resource :new => [:new_cart, :create_cart] 

참조 http://rdoc.info/github/ryanb/cancan/master/CanCan/ControllerAdditions/ClassMethods:load_resource

+0

을 사용하여 carts_controller.rb의 맞춤 작업에 새 장바구니 레코드를 만들고 싶다는 점을 분명히 이해하십시오. 나는 이걸 기대하고있다 .. –

-3

당신은 Rails를 처음 사용하는 사람입니다.

경로를 만들 때 실제로 액션을 생성하지 않으면 앱이 해당 경로에 응답하는 방법을 만들면됩니다.

레일스의 "마술"때문에 정의한 경로와 동일한 이름의 컨트롤러 동작을 만들어 라우트의 기능을 정의 할 수 있습니다. 당신이 정말 모델 메소드를 호출하는 Cart.anything 호출 할 때 레일 마법 경향에

그래서 경우에 당신은 그 다시 한 번, 조치가

또한 carts_controller에 new_cart 및 create_cart 감사를 만들어야합니다 DB의 컬럼 또는 명시 적으로 모델 파일에 정의한 메소드 중 하나 여야합니다 ...

해당 조치 내에서 새 오브젝트를 작성하려면 컨트롤러의 조치로 가서 새 카트를 작성하십시오. load_resource는 필요 없습니다.

희망이 있습니다.

+1

권한 부여 보석이라는 캉캉의 당신이 알고 있습니다. 이 페이지를 참조하십시오 https://github.com/ryanb/cancan cancan의 load_resource 메소드 –