2017-04-01 103 views
0

如何將鏈接中的搜索參數傳遞給打印。如何將鏈接中的搜索參數傳遞給打印

我有一個方法#index控制器#TicketsController

def index 
    @search = current_account.searches.find_by(id: params[:search_id]) 

    @q = policy_scope(Ticket).ransack(params[:q]) 

    if params[:q].blank? && params[:advanced_search].blank? || params[:q]&.to_unsafe_h&.length == 1 && params[:q][:s].present? 
    @q.add_default_condition('status', 'in', 'open') 
    session[:last_ticket_search] = nil 
    else 
    session[:last_ticket_search] = {q: params[:q]} 
    if params[:advanced_search].present? 
     session[:last_ticket_search].merge!(advanced_search: 't', selected_columns: params[:selected_columns]) 
     session[:last_ticket_search].merge!(params[:search_id].present? ? {search_id: params[:search_id]} : {commit: 'Apply'}) 
    end 
    end 

    @selected_columns = selected_columns 
    @tickets = @q.result.select('tickets.*') 
         .includes(:account, :ticket_responses, :assignee, :tags) 
         .order('tickets.created_at DESC') 
         .paginate(page: params[:page], per_page: per_page('tickets')) 
end 

我需要做一個網頁打印的所有對象。 爲此,我做了鏈接Print在'門票/ index.html.erb

<a class="btn btn-primary print-button" href="<%= tickets_path(variant: :print) %>" target="_blank" title="Print ticket" data-tooltip data-placement="bottom"> 
    <i class="fa fa-print"></i> 
</a> 

的一點是,如果你點擊它會打開此對象的整個列表,一切都很好。但是如果我使用search,我將生成所有對象的列表。我需要在搜索中定義的對象列表。那麼如何在控制器中傳遞搜索參數以生成打印頁面?

我試過了。

<%= tickets_path(q: params[:q], advanced_search: params[:advanced_search], variant: :print) %> 

但是,控制器不共享參數並接受字符串。

需要:"utf8"=>"✓", "q"=><ActionController::Parameters {"assignee_id_eq"=>"", "status_in"=>"closed", "ticket_type_eq"=>"", "simple_search"=>""}

我得到:

def new 
    @search_params = Rack::Utils.parse_nested_query params[:q] 
    ... 
end 

,並在:{"q"=>"assignee_id_eq=&simple_search=&status_in=closed&ticket_type_eq=", "variant"=>"print", "controller"=>"tickets", "action"=>"index"}

+0

你的意思是你不想SE再次拱起,如何在平均時間內存儲結果,或者如何將查詢參數傳遞給link_helper? – kriskova

+0

只是如何將查詢參數傳遞給link_helper – user3458697

回答

0

只是解析成一個哈希你需要的參數,將可在視圖中創建一個實例變量觀點:

<%= tickets_path(q: @search_params[:q], advanced_search: params[:advanced_search], variant: :print) %> 
+0

但我仍然得到與參數的行。 '@print_params =>「assignee_id_eq =&simple_search =&status_in = closed&ticket_type_eq =」,「variant」=>「print」,「controller」=>「tickets」,「action」= >「index」}允許:false>' – user3458697

+0

好吧,我開始明白你的意思了。 – kriskova

+0

我編輯了答案,檢查出來。基本上你只需要將一個查詢字符串解析爲一個散列,然後使用它 – kriskova

相關問題