ransackable_scope에 자유를!

Rails로 검색 화면 만들면 Ransack군요.
매우 편리합니다.
당신 없이는 살 수 없다
더 이상 당신 없이, 꾸준히 controller와 model 괴롭히고 있었을 무렵은, 기억할 수 없다 ...

검색 기능을 추가하고 싶습니다.
특히 들어간 조건의 ...라고 할 때, 여러분 어떻게 됩니까?

나는 ransackable_scope를 사용합니다.
  • ActiveRecord에서 scope 만들기
  • 그것을 ransack에서 사용할 수 있도록 허용 #ransackable_scopes

  • 자세한 내용은 ↓로 양도합니다 (ry
    Ransack에서 ActiveRecord의 Scope를 사용하여 검색하는 방법
    공식

    이 2번, 번거롭지 않습니까?

    ransack에서는 어떤 asociation, scope, model, 검색 방식을 사용할 수 있는지를
    권한 제어로 조작 가능입니다.
    이 scope 부분만이, default로 [] 즉, 전 거부.

    귀찮은 .... (엔지니어적 미덕이라고 믿어.)

    솔직히, 이것이 문제가 될 것 같지 않기 때문에,
    ↓의 monkey patch로 오버라이드(ransackable_scope를 전무시) 시켰습니다

    /config/initializers/ransack.rb
    
    # 全scopeを使OK
    module Ransack
      class Context
        def ransackable_scope?(str, klass)
          klass.respond_to? str
        end
      end
    end
    

    인수 0-1개의 scope는 모두 검색에 사용할 수 있습니다.
    option 인수를 제2 인수 이후에 있어도 괜찮아요.

    또, 파라미터를 배열로 하면, 2 인수 이상이라도 OK(전개해 준다)

    ?q[my_scope][]=arg1&q[my_scope][]=arg2&q[my_scope][]=arg3
    그래서 자유를 이겼다.

    음, 보안 별로 신경 쓰지 않는 사내 시스템이나 한정 1으로,
    개인의 책임으로 사용해 주십시오.



    엄밀하게는, 화이트리스트형으로부터 블랙리스트형으로 하는 것이 좋겠지. #ransackable_limited_scope 라든지 만들어. 

    좋은 웹페이지 즐겨찾기