2012-12-29 2 views
1

세 가지 모델이 있습니다.어디에 공통 기능을 저장해야합니까?

  • users_controllers.rb
  • communities_controller.rb
  • community_tipics_controller.rb 내가

    def checkdigit 
    (transaction) 
    end 
    

    나는이를 배치하고있어 check_digit라는 기능을 사용하고

모든 컨트롤러에서. before_filter로 호출합니다.
하지만 위의 코드를 모두 컨트롤러에 정확히 붙여 넣기 때문에 낭비라고 생각합니다.

내 컨트롤러가이 컨트롤러를 공용으로 사용한다면 어디에 넣어야합니까?
컨트롤러/application_controller.rb에 넣어야합니까?

답변

2

, 몇 가지 가능한 방법이

첫번째 방법을

(나는이 일을 해요 경우)이 application_controller 내부 컨트롤러 사용하는 간단한 방법 인 경우입니다. RB

private 
def checkdigit 
(transaction) 
end 

두번째 방법

,536,

함수가 특정 카테고리에서 사용되는 경우 (일반적으로 자주 사용), 별도의 컨트롤러를 만들고 다른 모든 컨트롤러를 상속받습니다.

예 : 내 관리자 만 내 관리자 만 사용한 경우 고려 .. 당신의 방법 인 경우는 모델/컨트롤러 등이 사용됩니다/그

class AdminController < ApplicationController 
    layout 'admin' 

    private 
    def checkdigit 
    (transaction) 
    end 

end 

and 

class UsersController < AdminController 

end 

세번째 방법

같은 좀 더 방법을 가정하고 그것을 모듈

012을

HTH

1

당신은 helpers/application_helper.rb

1

당신이 올바른지은, 모든 컨트롤러가 필요로하는 모든 일반적인 방법은 ApplicationController에 보관해야합니다 그것을 넣을 수 있습니다.

또한이 컨트롤러의 모든 컨트롤러간에 공통 논리를 유지해야합니다.

편집 :
그들은 단지 헬퍼 경우
는, 당신은 도우미가 갈 곳 넣어 @simone하여 답을 볼 것입니다. 이 일을 여러 가지 방법이 있습니다

+0

고마워요! 이 작품! – MKK

관련 문제