2017-04-01 6 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 

を持っています。このため 私はポイントはあなたがここにオブジェクトのリスト全体を開きます。それをクリックすると、すべてが順調であるということである

<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> 

index.html.erb /チケット `でリンクPrintを作りました。しかし、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"=>""}

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

+0

あなたはアーチをもう一度やってみて、平均時間内に結果を保存する方法や、クエリパラメータをlink_helperに渡す方法は? – kriskova

+0

クエリパラメータをlink_helper – user3458697

答えて

0

ちょうどビューで利用できるようになりますハッシュに解析され、あなたに必要なパラメータを指定してインスタンス変数を作成します。

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

とで表示:

<%= 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"} permitted:false> ' – user3458697

+0

あなたが何を意味するかを始めます。 – kriskova

+0

私は答えを編集して、それを確認します。基本的には、クエリ文字列を解析してハッシュにする必要があります – kriskova

関連する問題