2013-09-21 1 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

You не может + что-то до Date класс или конкретная дата, например Date.today. Но следующие работы.

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

"#{something}" оценивает something, вызывает to_s на результат и затем вставляет в строку.

+0

я использовал код и получил неопределенный метод 'имя«для ноля: NilClass –

+0

я изменить его на @ ejecutives.name и я получил неопределенный метод 'имя» для # <Массив: 0x7f9286ddb560> –

+0

Right. У вас есть только '@ejecutives = Ejecutive.find (: all)' и не один конкретный 'Ejecutive'. Попробуйте '@ ejecutives.first.name' – spickermann