2013-09-21 3 views
0

파일 이름 레일 월호 :사용자 정의 내가 XLS에 저장하고있어 형식을 정의하기 위해 노력하고있어

  • 내가 원하는 도움말 사용자 정의 = "날짜"+ "ejecutive 선택"+ ".XLS"

내 모델

class Policy < ActiveRecord::Base 
    unloadable 
    belongs_to :ejecutive 
    has_many :policy 

    def self.search(search) 
    if search 
     find(:all, :conditions => ["ejecutive_id = ? ", search.to_i ]) 
    else 
     find(:all) 
    end 
    end 
end 

class Ejecutive < ActiveRecord::Base 
    has_many :policies 
end 

여기 내 컨트롤러입니다. 다음은 내가 날짜를 사용자 정의하기 위해 노력하고있어 내 형식을 넣어 + ejecutive 선택 + .XLS 여기

class PolicyManagement::PolicyController < ApplicationController 
    def generate_print_ejecutive_comercial 
     @ejecutives = Ejecutive.find(:all) 
     @search = Policy.search(params[:search]) 
     @policies = @search.paginate(:page => params[:page], :per_page =>10) 
     @results= Policy.search(params[:search]) 

     respond_to do |format| 
     format.html 
     format.xls { send_data render_to_string(:partial=>"report_by_ejecutive"), :filename => Date + @ejecutives.name"reporte.xls" } 
     end 
end 

내보기

<% form_tag :controller=>"policy_management/policy",:action =>"generate_print_ejecutive_comercial", :method => 'get' do %> 
    <%= select_tag "search", options_for_select(@ejecutives.collect {|t| [t.name.to_s+" "+t.lastname1.to_s,t.id]}) %> 
    <%= submit_tag "Search", :name => nil %> 
<% end %> 

Results 
    <% @policies.each do |policy| %> 
    <p> <%= policy.num_policy%> </p> 
    <p> <%= policy.ejecutive.name %> </p> 
    <p> <%= policy.ejecutive.last_name %> </p> 
    <% end %> 
    <%= will_paginate @policies %> 

<%= link_to "Export", :controller=>"policy_management/policy",:action=>"generate_print_ejecutive_comercial" ,:format=>"xls",:search => params[:search],:page => params[:page] %> 

나는이

 respond_to do |format| 
     format.html 
     format.xls { send_data render_to_string(:partial=>"report_by_ejecutive"), :filename => Date + @ejecutive.name + ".xls" } 
     end 

답변

1

당신을 시도하다 Date 클래스에 + 무언가 또는 Date.today과 같은 특정 날짜를 입력 할 수 없습니다. 그러나 다음 작품들.

:filename => "#{Date.today}#{@ejecutive.name}.xls" 

"#{something}"는 결과에 to_s를 호출하고 문자열로의 삽입, something을 평가합니다.

+0

는 내가 코드를 사용하고 정의되지 않은 메서드'이름을 가지고 '전무을 위해 : NilClass –

+0

내가 @의 ejecutives.name에 대한 변경과 내가 정의되지 않은 메서드'이름을 가지고'#에 대한 <배열 : 0x7f9286ddb560> –

+0

오른쪽. '@ejecutives = Ejecutive.find (: all)'만 있고 'Ejecutive'는 하나가 아닙니다. '@ ejecutives.first.name'을 시도하십시오. – spickermann