xiaoqiu369

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

2008年12月23日 #

注: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 阅读(227) | 评论 (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 阅读(937) | 评论 (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 阅读(178) | 评论 (0)编辑 收藏

    1.we receive a new request for a page to our rails application.
    2.Rails routes this request to a controller for processing.
    3.Our controller interacts with the models in our application to gather the necessary data
    4.Our model may retrive or insert data to our database
    5.Once our models have generated or retrived correct information,they return the data back to the collection
    6.The controller collects all of the data it's received from models and selects a view template to render
    7.The view template is rendered using  the data that the collection gathered and handed to  the web server
    8.An html page is returned to the user.
posted @ 2009-01-05 16:18 bobqiu 阅读(130) | 评论 (0)编辑 收藏

按照惯例,还是打印出Hello world.

/app/controllers/stories_controllers.rb:

class StoriesController<ActionControllers::Base
    def index
        @varies="hello world"
    end
end


/views/stories/index.html.erb:

<%=@varies%>

/config/routes.rb

ActionController::Routing::Routes.draw do |map|
    map 'stories',:controller=>'stories',:action=>'index'
end

启动服务在IE中打开:
http://localhost:3000/stories
OK
posted @ 2008-12-23 16:46 bobqiu 阅读(166) | 评论 (0)编辑 收藏