Will Paginate and radiant-paginate-extension?

I seem to have some issues with installing pagination in Radiant too:

I want to use “radiant-paginate-extension”:

http://github.com/ihoka/radiant-paginate-extension/tree/master

But when I “rake” I get:

rake production db:migrate:extensions
(in /home/chainrea/radapp)
rake aborted!
Expected
/home/chainrea/radapp/vendor/extensions/paginate/app/models/paginate_tags.rb
to define PaginateTags

I suspect the issue to be related to the requirement of the gem “Will
Paginate”.

And I have installed it prior to installing “radiant-paginate”, but
maybe it isn’t configured properly?

It is installed in my “gems” folder and I have edited the environment.rb
in “myradiant”/config/ adding the line:

require ‘will_paginate’

at the bottom like this:


Be sure to restart your server when you modify this file

Uncomment below to force Rails into production mode when

you don’t control web/app server and can’t set it the proper way

ENV[‘RAILS_ENV’] ||= ‘production’
ENV[‘GEM_PATH’] = ‘/home/chainrea/gems:/usr/lib/ruby/gems/1.8’

Specifies gem version of Rails to use when vendor/rails is not present

require File.join(File.dirname(FILE), ‘boot’)

require ‘radius’

Radiant::Initializer.run do |config|

Settings in config/environments/* take precedence over those

specified here.

Application configuration should go into files in

config/initializers

– all .rb files in that directory are automatically loaded.

See Rails::Configuration for more options.

Skip frameworks you’re not going to use (only works if using

vendor/rails).

To use Rails without a database, you must remove the Active Record

framework
config.frameworks -= [ :action_mailer ]

Only load the plugins named here, in the order given. By default,

all plugins

in vendor/plugins are loaded in alphabetical order.

:all can be used as a placeholder for all plugins not explicitly

named

config.plugins = [ :exception_notification, :ssl_requirement, :all ]

Only load the extensions named here, in the order given. By default

all

extensions in vendor/extensions are loaded, in alphabetical order.

:all

can be used as a placeholder for all extensions not explicitly

named.

config.extensions = [ :all ]

Force all environments to use the same logger level

(by default production uses :info, the others :debug)

config.log_level = :debug

Your secret key for verifying cookie session data integrity.

If you change this key, all old sessions will become invalid!

Make sure the secret is at least 30 characters and all random,

no regular words or you’ll be exposed to dictionary attacks.

config.action_controller.session = {
:session_key => ‘_radiant_session’,
:secret => ‘asdfqwerfxcoivswqenadfasdfqewpfioutyqwel’
}

Use the database for sessions instead of the cookie-based default,

which shouldn’t be used to store highly confidential information

(create the session table with ‘rake db:sessions:create’)

config.action_controller.session_store = :active_record_store

Use SQL instead of Active Record’s schema dumper when creating the

test database.

This is necessary if your schema can’t be completely dumped by the

schema dumper,

like if you have constraints or database-specific column types

config.active_record.schema_format = :sql

Enable page/fragment caching by setting a file-based store

(remember to create the caching directory and make it readable to

the application)

config.action_controller.fragment_cache_store = :file_store,

“#{RAILS_ROOT}/fragment_cache”
config.action_controller.page_cache_directory = “#{RAILS_ROOT}/cache”

Activate observers that should always be running

config.active_record.observers = :user_action_observer

Make Active Record use UTC-base instead of local time

config.active_record.default_timezone = :utc

Set the default field error proc

config.action_view.field_error_proc = Proc.new do |html, instance|
%{

#{html}
#{[instance.error_message].flatten.first}
}
end

config.after_initialize do
# Add new inflection rules using the following format:
Inflector.inflections do |inflect|
inflect.uncountable ‘config’
inflect.uncountable ‘meta’
end

# Auto-require text filters
Dir["#{RADIANT_ROOT}/app/models/*_filter.rb"].each do |filter|
  require_dependency File.basename(filter).sub(/\.rb$/, '')
end

# Response Caching Defaults
ResponseCache.defaults[:directory] =

ActionController::Base.page_cache_directory
ResponseCache.defaults[:logger] = ActionController::Base.logger
end
end

require ‘will_paginate’


So “will_paginate” should be working? or am i doing something wrong
here?

I’ve just installed comments, and it seems to work “50 %” it gets
installed but doesn’t work - probeably becuse “will_paginate” doesn’t
work?

I don’t know what the standard radiant practice is for gem plugins,
but for will_paginate I think you have to install it as a plugin in
vendor/plugins. I don’t know if the version of Rails vendor’d in
Radiant uses the new ‘gem’ syntax.

I would love to hear differently. :slight_smile:

On Tue, Jul 15, 2008 at 9:53 AM, Josh S. <
[email protected]> wrote:

I don’t know what the standard radiant practice is for gem plugins, but for
will_paginate I think you have to install it as a plugin in vendor/plugins.
I don’t know if the version of Rails vendor’d in Radiant uses the new ‘gem’
syntax.

Seems like it would be easiest for ihoka to:

git submodule add
git://github.com/mislav/will_paginate.gitvendor/plugins/will_paginate

at the root of his extension’s git repo. That way, a git submodule init
and
git submodule update will grab the latest version of will_paginate from
github and shove it in the plugins directory.

Anyone have experience with nested git submodules?


Tim