xiaoqiu369

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  7 Posts :: 3 Stories :: 2 Comments :: 0 Trackbacks

2009年1月19日 #

注:rails的版本是2.0以上.

1.在application.rb里添加分页信息方法:

1 def page_for(result,options={})
2 
3       default_options = {:per_page => 10}   
4        options = default_options.merge options   
5        pages = WillPaginate::Collection.new(options[:page],options[:per_page],result.total_hits)   
6         return pages
7     
8     end
2.users_controller.rb里添加search方法:
 1   def search
 2     
 3     @keyWord=params[:keyWord]
 4     if params[:page]==nil||params[:page]==""
 5       @page=1
 6     else
 7       @page=params[:page]
 8     end
 9     @users=User.find_by_contents(@keyWord,:per_page=>2,:page=>@page)
10     @pages=page_for(@users,:page=>@page,:per_page=>2)
11   end
3.view页面:
 1 <%@users.each do |user|%>
 2 <br>
 3    username: <%=user.highlight(@keyWord,:field=>:user_name,:num_excerpts=>1,:pre_tag=>'<strong>',:post_tag=>'</strong>')%><br> 
 4    地址:<%=user.highlight(@keyWord,:field=>:introduce,:num_excerpts=>1,:pre_tag=>'<strong>',:post_tag=>'</strong>')%>
 5 ==================================================================================
 6 <%end%>
 7 <p>
 8   共<%=@users.total_hits%>条记录
 9 </p>
10 <p>
11   <%=link_to "上一页",{:page=>@pages.previous_page,:keyWord=>@keyWord} %>
12 <%=link_to "下一页",{:page=>@pages.next_page,:keyWord=>@keyWord} %>
13 <br/>
14 <%=will_paginate @users%>
15 </p>
posted @ 2009-03-04 20:00 bobqiu 阅读(222) | 评论 (1)编辑 收藏

按照网上传统的方法安装几次都没有成功.最后只有下载gem文件安装
1.下载ferret-0.11.6-mswin32.gem文件
2.用gem 安装:gem install ferret-0.11.6-mswin32 --local
3.gem install acts_as_ferret
4.从网上下载ferrect_ext.so文件,copy到 ferret-0.11.5-x86-mswin32\lib目录(跟ferret.rb同一目录)

如果直接下载源码安装运行ruby setup.rb.会出现"the c extensions could not be installed"的错误


手动安装plugins

将下载的源文件放到vendor/plugins里面,进入该目录,运行ruby install.rb

出现的问题:

=> Booting WEBrick...

c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:442:in `load_missing_constant': uninitialized constant Ferret::Analysis::Analyzer (NameError)

        from c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'

        from E:/rorapp/demo/vendor/plugins/acts_as_ferret/lib/ferret_extensions.rb:17

        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'

        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

        from c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'

        from E:/rorapp/demo/vendor/plugins/acts_as_ferret/lib/acts_as_ferret.rb:28

        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'

        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

         ... 25 levels...

        from c:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49

        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'

        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

        from script/server:3

 解决办法就是把上面安装完成ferret后的文件里找到ferrect_ext.so将这个文件放到lib里面.这个是200多K,而从网上下载的才30K.导致上面的问题.

posted @ 2009-02-20 22:31 bobqiu 阅读(924) | 评论 (0)编辑 收藏

1.验证码:recaptcha
gem install --source http://www.loonsoft.com/recaptcha/pkg/ recaptcha

2.搜索:acts_as_searchable是一个Rails插件,它依赖于Hyper Estraier这个独立的搜索引擎所提供的索引和搜索服务 
            ferret gem install ferret -v=0.11.5 --platform mswin32  
3.pdf:
gem install pdf-writer  

4.测试:
RSpec+Mocha

5.桌面应用
gem install anvil

posted @ 2009-02-07 14:57 bobqiu| 编辑 收藏

使用插件

1/ will_paginate

    http://groups.google.com/group/will_paginate

 

这个资料很多,不多说

 

2/ squirrel

    下载:http://github.com/thoughtbot/squirrel/tree/master

 

主要实现 动态条件的查询,扩展ActiveScaffold find方法。支持跨Model查询,具体见

    说明:http://thoughtbot.com/projects/squirrel

 

贴段主要实现代码

#controller:

def index

#######################################################

#下面代码可以按实际情况提取到Model或其他地方;方便测试我直接放在index下

#######################################################
    @permissions = Permission.find(:all) do
      paginate :page => params[:page]||1,:per_page=>5
      any do
        name == params[:permission][:name] unless params[:permission].nil?
        code == params[:permission][:code] unless params[:permission].nil?
        permit_date == params[:permission][:permit_date] unless params[:permission].nil?
        contact.company == params[:contact][:company] unless params[:contact].nil?
      end
    end
 #######################################################
    respond_to do |format|
      format.html # index.rhtml
      format.xml  { render :xml => @permissions.to_xml }
    end
  end

 

 

#index--view

 

<% field_set_tag do %>
  <% form_for :permission, :url=>permissions_url,:method=>:get,:html=>{:method=>:get} do |f| %>
    公司名称 :<%= text_field_with_auto_complete :contact, :company,{},{:method=>:get}%>  <br>
    证书类型 :<%= text_field_with_auto_complete :permission, :name,{},{:method=>:get}%>  <br>
    证书编号 :<%= text_field_with_auto_complete :permission, :code,{},{:method=>:get}%>  <br>
    授与日期 :<%= text_field_with_auto_complete :permission, :permit_date,{},{:method=>:get}%>  <br>
    <%= submit_tag '查询'  %>
   <% end %>
<%  end %>

 

...

 

<div class="digg_pagination">
  <div clas="page_info">
    <%= page_entries_info @permissions %>
  </div>
  <%= will_paginate @permissions, :container => false %>
</div>

posted @ 2009-01-19 11:23 bobqiu 阅读(175) | 评论 (0)编辑 收藏