TypeError (Cannot visit Category):

Hey all,

this order_by method right here is throwing an exception:

@resource_model.order_by(@order_field)

The exception is “TypeError (Cannot visit Category):”

I think it’s returning this:

#ActiveRecord::Relation:0x000001038701f0

I have no clue why. It’s supposed to be returning a string like
‘controller asc’.

This is the lead up to the error:

def find_options
extract_pagination
extract_order
opts = {:page => @will_paginate_page, :per_page =>
@will_paginate_per_page, :order => @will_paginate_order}
opts.merge(additional_options)
end

def additional_options
{}
end

def extract_pagination
@will_paginate_page = params[:page] || 1
@will_paginate_per_page = params[:per_page] || 20
end

def extract_order
if params[:order].present?
@order_field = params[:order]
end
@will_paginate_order = @resource_model.order_by(@order_field)
end

#my category model inherits from restfulmodel.rb:

def self.order_by(field)
field = field.to_s
if field.blank?
return default_order ? order_by(default_order) : scoped(nil) #if
returned value of default_order call exists, self-invoke order_by
end
scope = field.starts_with?(’-’) ? ‘descend_by_’ + field.from(1) :
‘ascend_by_’ + field
send(scope)
end

#then my category model has this:
def self.default_order
‘controller’
end

scope :ascend_by_controller, :order => ‘controller asc’

Something is flawed with that order_by method. It’s not sending
ascend_by_controller to the category model and then returning the value
of the scope :ascend_by_controller. Am I missing something here?

@will_paginate_order should hold a string like ‘controller asc’

Thanks for response.