will_paginate and ajax in rails 3

在rails3项目中出现分页内容不能加载Ajax情况,开始以为是升级rails 3的插件问题,记录一下解决办法。
1.view 显示层(如ask/show.html.erb)
< div id="queue"> < %= render :partial => ‘queue’ %>
< script>
$(document).ready(function() {
$(‘.pagination a’).attr(‘data-remote’, ‘true’);
});

2.controller (如ask_controller.rb)

def show
@user = User.find(params[:id])
@queue_items = @user.queue_items.with_state(:pending).paginate(:page => params[:queue_page] || 1, :per_page => 1)
respond_to do |format|
format.html
format.js
end
end

3.js template

$(‘#queue’).html(‘< %=escape_javascript render :partial => “queue” %>’);
$(‘.pagination a’).attr(‘data-remote’, ‘true’);

还有一种在Rails3中的方法也一并记录如下。(via:火哥的零碎)

class RemoteLinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
def prepare(collection, options, template)
@remote = options.delete(:remote) || { }
super
end

def link(text, target, attributes = {})
if target.is_a? Fixnum
attributes[:rel] = rel_value(target)
target = url(target)
end
attributes[:href] = target
# page_attr = { :page => target }
@template.link_to( text.to_s.html_safe, target, :remote => true )
end
end

Ubuntu Server 10.04 (Jaunty) Installing RMagick and git-core

Server System:ubuntu server 10.04


$ sudo aptitude install -y imagemagick
$ sudo aptitude install -y libmagick9-dev
$ sudo gem install rmagick

Testing

irb -rubygems -r RMagick
irb(main):001:0> puts Magick::Long_version
This is RMagick 2.13.1 ($Date: 2009/12/20 02:33:33 $) Copyright (C) 2009 by Timothy P. Hunter
Built with ImageMagick 6.5.7-8 2009-11-26 Q16 http://www.imagemagick.org
Built for ruby 1.8.7
Web page: http://rmagick.rubyforge.org
Email: rmagick@rubyforge.org
=> nil

Installing git on Ubuntu 10.04 (Jaunty)

$ sudo apt-get build-dep git-core git-doc libssl-dev
$ wget http://kernel.org/pub/software/scm/git/git-1.6.3.3.tar.gz
$ tar -xzf git-1.6.3.3.tar.gz
$ cd git-1.6.3.3/
$ ./configure
$ make all doc
$ sudo make install install-doc
$ git --version
git version 1.6.3.3

I am back

Bloging是一种态度,但停下来久了,就提不起精神整理思绪,很多时候写了一半的内容都烂在了后台…而停下来越久,就越难开始,还好有Twitter, Google Reader,FriendFeed,Facebook等众多优秀的网络工具(虽然要翻山越岭),还能感觉到自己在网络上继续活着,并活跃着…….

Twitter地址: @kings