> if state_index < current_index

either one or the other is nil, that's your problem. 

-- 
Oscar Del Ben
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)


On Tuesday, July 17, 2012 at 12:55 PM, yatta20 wrote:

> 
> On Tuesday, July 17, 2012 3:46:55 PM UTC-4, yatta20 wrote: 
> > 
> > Hello I'm a newbie, 
> > 
> > 
> > Our server went down recently and now I'm getting page not found when I try 
> > to purchase a product.
> > 
> > 
> > Ruby 1.9.3, Rails 3.21
> > 
> > 
> >  
> > 
> > 
> > Here's the information from the log file. 
> > 
> > 
> > ActionView::Template::Error (comparison of Fixnum with nil failed):
> > 
> > 
> >     3: <% end %>
> > 
> > 
> >     4: <div id="checkout">
> > 
> > 
> >     5:   <h1><%= t("checkout")%></h1>
> > 
> > 
> >     6:   <%= checkout_progress %>
> > 
> > 
> >     7:   <br clear="left" />
> > 
> > 
> >     8:   <%= render "shared/error_messages", :target => @order %>
> > 
> > 
> >     9:     <%if @order.state != "confirm"%>
> > 
> > 
> >   app/helpers/checkout_helper.rb:16:in `<'
> > 
> > 
> >   app/helpers/checkout_helper.rb:16:in `checkout_progress'
> > 
> > 
> >   app/helpers/checkout_helper.rb:9:in `map'
> > 
> > 
> >   app/helpers/checkout_helper.rb:9:in `checkout_progress'
> > 
> > 
> >   app/views/checkout/edit.html.erb:6:in 
> > `_app_views_checkout_edit_html_erb___1936024257_23456254125680_0'
> > 
> > 
> >  
> > 
> > 
> >   app/views/checkout/edit.html.erb 
> > 
> > 
> > <% content_for :head do %>
> >   <%= javascript_include_tag  'checkout', '/states' %>
> > <% end %>
> > <div id="checkout">
> >   <h1><%= t("checkout")%></h1>
> >   <%= checkout_progress %>
> >   <br clear="left" />
> >   <%= render "shared/error_messages", :target => @order %>
> >  <%if @order.state != "confirm"%>
> >    <%= hook :checkout_summary_box do %>
> >      <div id="checkout-summary" class="alt">
> >        <%= render 'summary', :order => @order %>
> >      </div>
> >    <% end %>
> >  <%end%>
> >  <div id="address_form_container">
> >    <%= form_for @order, :url => update_checkout_path(@order.state), :html 
> > => { :id => "checkout_form_#{@order.state 
> > (mailto:checkout_form_#%7B@order.state)}" } do |form| %>
> >      <%= render @order.state, :form => form %>
> >      <input id="post-final" type="submit" style="display:none"/>
> >    <% end %>
> >  </div>
> > </div>
> > 
> > 
> > Any ideas?
> > 
> > 
> 
> Checkout help
> module CheckoutHelper
>   def checkout_progress
>     if Gateway.current and Gateway.current.payment_profiles_supported?
>       states = %w(address delivery payment confirm complete)
>     else
>       states = %w(address delivery payment complete)
>     end
>     items = states.map do |state|
>       text = t("order_state.#{state}").titleize 
>       css_classes = []
>       current_index = states.index(@order.state)
>       state_index = states.index(state) 
>       if state_index < current_index
>         css_classes << 'completed'
>         text = link_to text, checkout_state_path(state)
>       end 
>       css_classes << 'next' if state_index == current_index + 1
>       css_classes << 'current' if state == @order.state
>       css_classes << 'first' if state_index == 0
>       css_classes << 'last' if state_index == states.length - 1
>       # It'd be nice to have separate classes but combining them with a dash 
> helps out for IE6 which only sees the last class
>       content_tag('li', content_tag('span', text), :class => 
> css_classes.join('-'))
>     end
>     content_tag('ol', raw(items.join("\n")), :class => 'progress-steps', :id 
> => "checkout-step-#{@order.state (mailto:checkout-step-#{@order.state)}")
>   end
>   
>   def address_field(form, method, id_prefix = "b", &handler)
>       content_tag :p, :id => [id_prefix, method].join, :class => "field" do
>         if handler
>           handler.call
>         else
>           is_required = Address.required_fields.include?(method)
>           separator = is_required ? '<span class="req">*</span><br />' : '<br 
> />'
>           form.label(method) + separator.html_safe +
>           form.text_field(method, :class => is_required ? 'required' : nil)
>         end
>       end
>     end 
>     def address_state(form, country)
>       country ||= Country.find(Spree::Config[:default_country_id])
>       have_states = !country.states.empty?
>       state_elements = [
>         form.collection_select(:state_id, country.states.order(:name),
>                               :id, :name,
>                               {:include_blank => true},
>                               {:class => have_states ? "required" : "hidden",
>                               :disabled => !have_states}) +
>         form.text_field(:state_name,
>                         :class => !have_states ? "required" : "hidden",
>                         :disabled => have_states)
>         ].join.gsub('"', "'").gsub("\n", "") 
>       form.label(:state, t(:state)) + '<span class="req">*</span><br 
> />'.html_safe +
>         content_tag(:noscript, form.text_field(:state_name, :class => 
> 'required')) +
>         javascript_tag("document.write(\"#{state_elements.html_safe}\");")
>     end 
> end
>  
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk@googlegroups.com 
> (mailto:rubyonrails-talk@googlegroups.com).
> To unsubscribe from this group, send email to 
> rubyonrails-talk+unsubscr...@googlegroups.com 
> (mailto:rubyonrails-talk+unsubscr...@googlegroups.com).
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/rubyonrails-talk/-/QMOLhp6QU4AJ.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to