Help with partial


#1

First and foremost sorry if my english is not the best.

In my application I have a view with tickets and i can select it one to
one with a button.
The selected tickets go to another view that shows me the tickets i have
choosen. I want to export this selected tickets to excell.

My code is the next:

routes.rb

map.resources :tickets, :collection => { :exportar=>:get,
:auto_complete_for_ticket_province => :get,
:auto_complete_for_ticket_city => :get,
:auto_complete_for_ticket_zip => :get,
:auto_complete_for_ticket_adquired_in => :get }


tickets_controller

def add_to_cartticket
#Add the selected ticket to cartticket, works fine

end

def find_cartticket
#creates a new cartticket if whe iniciates the session, works fine
end

def vaciar_cartticket
#deletes all the tickets added to carticket in the current session,
works fine
end

def expotar #THIS METTOD SHOULD SELECT ALL THE CURRENT TICKETS IN
CARTICKET, i think works wroung
@cartticket.items= Cartticket.items
headers[‘Contenet-type’]=“aplication/vnd.ms-excel”
headers[‘Contenet-Disposition’]=‘attachment; filename=“report.xls”’
headers[‘Cache-Control’]=’’
end


add_to_cartticket.html.erb

h2>Tickets seleccionados

    <% for item in @cartticket.items %>
  • <%=h item.id %>
  • <% end %>

<%= button_to "Vaciar" , :action => :vaciar_cartticket %>

<%= link_to ‘Exportar a Excel’, exportar_tickets_url %> # MUST SHOW THE
SELECTED TICKETS ON .XLS COMPATIBLE


exportar.html.erb

<td>adios</td>

<td>dew</td>
<%=render :partial=> "item", :collection=>@cartticket.items %>
hola
---------------------------------- exportar.html.erb ---------------------------------- <%=item.user_id%> <%=item.contact%> <%=item.phone%>

++++++++++++++++++++++++++++++++++

whe i try to link to “Exportar a Excel” Firefox shows me this error:

NoMethodError in Tickets#exportar

Showing tickets/exportar.html.erb where line #9 raised:

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.items

Extracted source (around line #9):

6:
7:

dew
8:
9: <%=render :partial=> “item”, :collection=>@cartticket.items %>
10:

Could somebody help me to find the error(s)…Thanks a lot


#2

On Nov 19, 11:24 pm, Jose vicente Ribera pellicer <rails-mailing-
removed_email_address@domain.invalid> wrote:

Showing tickets/exportar.html.erb where line #9 raised:

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.items

You don’t seem to be setting @cartticket anywhere.

Fred


#3

Frederick C. wrote:

On Nov 19, 11:24�pm, Jose vicente Ribera pellicer <rails-mailing-
removed_email_address@domain.invalid> wrote:

Showing tickets/exportar.html.erb where line #9 raised:

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.items

You don’t seem to be setting @cartticket anywhere.

Fred

I dont`t think so, because in ticket controller this code works fine:

def add_to_cartticket
@cartticket = find_cartticket
ticket = Ticket.find(params[:id])
@cartticket.add_ticket(ticket)

end

def find_cartticket
unless session[:cartticket] # if there’s no cart in the session
session[:cartticket] = Cartticket.new # add a new one
end
session[:cartticket] # return existing or new cart
end

thanks for the answer. Now i’m not implementing this code, only appears
in the add_to_cartticket view one table with the fields i want to show.
Next step if I can`t sole tehe excel problem will be print it directly.


#4

Frederick C. wrote:

On 20 Nov 2008, at 15:37, Jose vicente Ribera pellicer wrote:

end

That’s irrelevant. when your expotar action is called you get a new
instance of the Controller - instance variables don’t persist across
requests.

Fred

So I will find @cartticket before select the items really?


#5

On 20 Nov 2008, at 15:37, Jose vicente Ribera pellicer wrote:

end

That’s irrelevant. when your expotar action is called you get a new
instance of the Controller - instance variables don’t persist across
requests.

Fred


#6

On 20 Nov 2008, at 18:10, Jose vicente Ribera pellicer wrote:

requests.

Fred

So I will find @cartticket before select the items really?
Sorry, I can’t parse that sentence.

Fred


#7

Sorry. I think this is the solution that you’re trying to show me:

def expotar #THIS METTOD SHOULD SELECT ALL THE CURRENT TICKETS IN
CARTICKET, i think works wroung

@cartticket = find_cartticket
@tickets=@cartticket.items

headers['Contenet-type']="aplication/vnd.ms-excel"

headers[‘Contenet-Disposition’]=‘attachment; filename=“report.xls”’
headers[‘Cache-Control’]=’’
end

@tickets has the tickets that y need.

I think you were trying to say this


#8

On 20 Nov 2008, at 18:59, Jose vicente Ribera pellicer wrote:

headers[‘Contenet-Disposition’]=‘attachment; filename=“report.xls”’
headers[‘Cache-Control’]=’’
end

@tickets has the tickets that y need.

I think you were trying to say this

that looks fine to me (ps send_data/send_file might help you reduce
typos in those headers)

Fred


#9

thanks a lot!!