Bonjour à tous,

J'ai récemment créer ma base de données sour MongoDB, une Base de donnée NoSQL.

Au départ je l'avais créer sous Sqlite mais j'ai besoin de créer les tables dynamiquement.
Bref ce n'est pas encore mon souci pour le moment.
Le souci c'est qu'avec Sqlite, je pluggin jqgrid et la pagination marchent parfaitement alors qu'avec mongoDb j'ai cette erreur:

undefined method `paginate' for #<Array:0xb51fb82c>

Voila mon code:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class ConfigurationsController < ApplicationController
  # GET /configurations
  # GET /configurations.xml
 
before_filter :require_user
filter_access_to :all
#filter_access_to :all, :attribute_check => true 
def index
@configurations=Configuration.all
conditions = generate_conditions
  data = @configurations.paginate(:page => params[:page], :per_page => params[:rows],:conditions => conditions, :order => generate_order)
 
  respond_to do |format|
    	format.html
   	format.json do
      	  columns = @configurations.column_names.select{ |col| col != '_id' }
      	  render :json => data.to_jqgrid_json([:_id] + columns.map{ |name| name.to_sym },params[:page], params[:rows], @configurations.count(conditions))      
	end
  end
end
def generate_order
  sidx = '_id' if params[:sidx].nil?
    sord = 'asc' if params[:sord].nil?
    "#{params[:sidx]} #{params[:sord]}"
  end
def generate_conditions 
  conditions = {}   
	if params[:_search] == 'true'
     	@configurations.keys.each do |key, value|
       	if params[key.to_sym].present?
	       	  if value.type == String
          		 conditions[key.to_sym] = /#{params[key.to_sym]}/
        	  elsif value.type == Time
         		selected_date = Date.parse(params[key.to_sym])
        		conditions[key.to_sym] = { '$gt' => selected_date.to_time, '$lt' => (selected_date + 1.day).to_time }
    	  elsif value.type == Integer
    		conditions[key.to_sym] = params[key.to_sym].to_i
    	  elsif value.type == Float
     		conditions[key.to_sym] = params[key.to_sym].to_f
 	  elsif value.type == Boolean
  		bool = [true, 'true', 1, '1', 'T', 't'].include?(params[key.to_sym].downcase)
		 conditions[key.to_sym] = bool
	  end
	end
  end#fin do
end# fin if
conditions
end# fin generate_condition
def post_data
  if params[:oper] == "del"
    Configuration.find(params[:id]).destroy
  else
    configuration_params = { :code => params[:code], :bt => params[:bt], :name => params[:name], 
                    :list_price => params[:list_price], :type_machine => params[:type_machine], :bwc => params[:bwc], :families => params[:families] }
    if params[:id] == "_empty"
      Configuration.create(configuration_params)
    else
      Configuration.find(params[:id]).update_attributes(configuration_params)
    end
  end
  render :nothing => true
end
....
Pouvez vous m'aider s'il vous plait?
Ce que je ne comprend pas c'est que dans mongomapper, il existe une méthode paginate que je n'arrive pas a utiliser...

Module: MongoMapper:lugins:agination::ClassMethods
Defined in: lib/mongo_mapper/plugins/pagination.rb

Je me demande s'il ne faut pas faire de import!


Merci pour votre aide