def sort_column
    Shruffle.column_names.include?(params[:sort]) ? params[:sort] :
"created_at"
  end

  def sort_direction
    %w[asc desc].include?(params[:direction]) ? params[:direction] :
"desc"
  end


When I change the desc to asc, it works, but the columns don't change
on click. Check out http://shruffle.net
On Aug 17, 1:42 pm, "Pat Allan" <[email protected]> wrote:
> Looks like your sort_direction method isn't returning the right details - 
> should be ASC or DESC, much like SQL. Can you confirm what the generated 
> value for the :order option is?
>
> --
> Pat
>
> On 17/08/2012, at 7:38 PM, frankphilips wrote:
>
>
>
>
>
>
>
> > Did that, but now I'm getting this:
>
> > index shruffle_core: invalid sorting order 'desc_sort'
>
> > On Aug 17, 12:29 pm, "Pat Allan" <[email protected]> wrote:
> >> Have you re-indexed Sphinxand restarted the daemon since making those 
> >> changes? If not, one task does it all: rake ts:rebuild
>
> >> Cheers
>
> >> --
> >> Pat
>
> >> On 17/08/2012, at 17:34, frankphilips <[email protected]> wrote:
>
> >>> Hi Pat,
>
> >>> I took your advice and incorporated your exact code.  I've also read up 
> >>> on attributes and fields and have fixed accordingly. However, now I'm 
> >>> getting this error:
>
> >>> "index shruffle_core: sort-by attribute 'created_at' not found"
>
> >>> I do have has created_at in my model.What am I doing wrong now? Thanks 
> >>> for the help!
>
> >>> -Frank
>
> >>> On Thursday, August 16, 2012 7:03:56 PM UTC-5, Pat Allan wrote:
> >>> Hi Frank
> >>> The .order method on models is for SQL queries, not Sphinx searches, so 
> >>> you can't mix the two together. If you want to use sort_column and 
> >>> sort_direction, then pass the string you're building with the :order 
> >>> option (which it seems you're currently doing with :created_at):
>
> >>>   Shruffle.search params[:search], :order => "#{sort_column} 
> >>> #{sort_direction}"
>
> >>> Also, I'd recommend reading up on the differences between attributes and 
> >>> fields - you probably don't want/need price, org_percent or created_at to 
> >>> be fields. Attributes are inherently sortable (indeed, when fields are 
> >>> marked as sortable, Thinking Sphinx is just creating an attribute in the 
> >>> background to fulfil that purpose).
> >>>http://freelancing-god.github.com/ts/en/sphinx_basics.html
>
> >>> Hope this helps.
>
> >>> --
> >>> Pat
>
> >>> On 16/08/2012, at 3:22 PM, frankphilips wrote:
>
> >>>> Hi,
>
> >>>> I'm a noob to Rails, and I need some help. In Railscast 240, Ryan talks 
> >>>> about creating sortable table columns with ajax 
> >>>> search:http://railscasts.com/episodes/240-search-sort-paginate-with-ajax
>
> >>>> However when I try to combine Thinking Sphinx rather then using the 
> >>>> standard search Ryan mentions, it breaks my sortable table columns. I'm 
> >>>> sure there is a quick way to fix this. Please help! Thanks :)
>
> >>>> Here's my code:
>
> >>>> MODEL:
>
> >>>> define_index do
>
> >>>>           indexes :title, sortable: true
> >>>>           indexes :desc, sortable: true
> >>>>           indexes email
> >>>>           indexes :org, sortable: true
> >>>>           indexes org_percent
> >>>>           indexes :price, sortable:true
> >>>>           indexes :city, sortable: true
> >>>>           indexes :created_at, sortable: true
>
> >>>>           has created_at, updated_at
>
> >>>>         end
>
> >>>> CONTROLLER:
>
> >>>> helper_method :sort_column, :sort_direction
> >>>>  def index
> >>>>    @shruffles = Shruffle.order(sort_column + ' ' + 
> >>>> sort_direction).search(params[:search], :order => :created_at,
> >>>>  :sort_mode => :desc)
>
> >>>> APPLICATION HELPER:
>
> >>>> def sortable(column, title = nil)
> >>>>    title ||= column.titleize
> >>>>    css_class = (column == sort_column) ? "current #{sort_direction}" : 
> >>>> nil
> >>>>    direction = (column == sort_column && sort_direction == "asc") ? 
> >>>> "desc" : "asc"
> >>>>    link_to title, {:sort => column, :direction => direction}, {:class => 
> >>>> css_class}
> >>>>          end
>
> >>>> VIEW:
>
> >>>> <%= hidden_field_tag :direction, params[:direction] %>
> >>>> <%= hidden_field_tag :sort, params[:sort] %>
>
> >>>> <table class="pretty">
> >>>>           <tr align="left">
>
> >>>>             <th><%= sortable "title" %></th>
> >>>>             <th><%= sortable "price" %></th>
> >>>>             <th><%= sortable "city"  %></th>
> >>>>             <th><%= sortable "org", 'Non-Profit' %></th>
> >>>>             <th><%= image_tag "ico-heart.png" %> <%= sortable 
> >>>> "org_percent", 'Donation %' %></th>
> >>>>             <th><%= sortable "created_at", 'Date' %></th>
> >>>>           </tr>
>
> >>>>             <% for shruffle in @shruffles %>
>
> >>>>                   <tr>
> >>>>                     <td><%= link_to shruffle.title, shruffle %></td>
> >>>>                     <td class="price"><%= 
> >>>> number_to_currency(shruffle.price) %></td>
> >>>>                     <td><%= shruffle.city %></td>
> >>>>                     <td><%= shruffle.org %></td>
> >>>>                     <td><%= shruffle.org_percent %>%</td>
> >>>>                     <td><%= shruffle.created_at.strftime("%b %d, %Y") 
> >>>> %></td>
> >>>>                   </tr>
> >>>>           <% end %>
> >>>> </table>
>
> >>>> -Frank
>
> >>>> --
> >>>> You received this message because you are subscribed to the Google 
> >>>> Groups "Thinking Sphinx" group.
> >>>> To view this discussion on the web 
> >>>> visithttps://groups.google.com/d/msg/thinking-sphinx/-/Ls4y1X2qT5YJ.
> >>>> To post to this group, send email to [email protected].
> >>>> To unsubscribe from this group, send email to 
> >>>> [email protected].
> >>>> For more options, visit this group 
> >>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>
> >>> --
> >>> You received this message because you are subscribed to the Google Groups 
> >>> "Thinking Sphinx" group.
> >>> To view this discussion on the web 
> >>> visithttps://groups.google.com/d/msg/thinking-sphinx/-/zvniTZRgm4QJ.
> >>> To post to this group, send email to [email protected].
> >>> To unsubscribe from this group, send email to 
> >>> [email protected].
> >>> For more options, visit this group 
> >>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Thinking Sphinx" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/thinking-sphinx?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en.

Reply via email to