2017-10-10 5 views
0

Ransack을 "find_by_sql"과 함께 사용하려면 어떻게해야합니까? 나는 일반적으로이 작업을 수행 : 사용자 지정 쿼리?find_by_sql에서 Ransack을 사용하는 방법

@mymodels = Mymodel.find_by_sql(["SELECT ... ", current_user]) 
+0

아마도 범위를 사용하고있을 수 있습니다. https://github.com/activerecord-hackery/ransack#using-scopesclass-methods – vzamanillo

답변

0

내가 제대로 그것을 얻을 경우를 할 때

def index 

    @m = Mymodel.ransack(params[:q]) 
    @mymodels = @m.result.page(params[:page]) 

end 

내가 더듬다을 사용할 수, 이것은 원하는 당신이 원하는 :

def index 
    @m = Mymodel.ransack(params[:q]) 
    @mymodels = @m.result.page(param[:page]).where(user: current_user) 
end 

직접 질문에 대답하려면 SQL 문자열로 변환 할 수 있지만 current_user을 인수로 사용할 수 없거나 어렵습니다 (

).
def index 
    @m = Mymodel.ransack(params[:q]) 
    sql = @m.result.page(param[:page]).to_sql 
    @mymodels = Mymodel.find_by_sql(sql, current_user) 
    # the line just above won't work immediately because you'll need to 
    # modify the `sql` variable manually by inserting the `?` that you'll 
    # need to map that to the `current_user` that you passed as an argument 
end