xiaoqiu369

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

2008年12月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 阅读(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 阅读(939) | 评论 (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 阅读(179) | 评论 (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 阅读(131) | 评论 (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 阅读(167) | 评论 (0)编辑 收藏

正在尝试使用 URL E:\eclipse3.1.2\workspace\red51\fla\test51.swf 启动并连接到播放器
解压缩后字节数为 [SWF] E:\eclipse3.1.2\workspace\red51\fla\test51.swf - 2703
Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetConnection.Connect.Failed
 at test51_fla::MainTimeline/test51_fla::frame1()[test51_fla.MainTimeline::frame1:1]


解决办法 :添加红颜色部分代码/

var nc:NetConnection=new NetConnection();
nc.connect("rtmp://localhost/red51");
nc.objectEncoding=ObjectEncoding.AMF0;
var so:SharedObject=SharedObject.getRemote("mo",nc.uri,false);
nc.addEventListener(NetStatusEvent.NET_STATUS,netStatusEventHandle);

function netStatusEventHandle(e:NetStatusEvent):void {
     trace(e.toString);
}

posted @ 2008-12-22 21:39 bobqiu 阅读(1631) | 评论 (1)编辑 收藏

     摘要: call.fla:  1nc = new NetConnection();  2nc.connect("rtmp://localhost/red5");  3nc.onResult = function(obj) {  4    var ...  阅读全文
posted @ 2008-12-21 22:12 bobqiu 阅读(1630) | 评论 (0)编辑 收藏

Rails Routing from the Outside In
http://guides.rails.info/routing_outside_in.html
这篇文章将介绍Rails routing针对用户方面的一些特性.参考这篇文章,你将会学到以下知识:
a.理解routing的作用
b.破解routes.rb内的代码
c.构建你自己的routes,可以用classic hash样式或现在流行的RESTful样式.
d.识别route怎样与controller和action映射.

1.The Dual Purpose of Routing

Rails routing 有两种机制,你可以将trees转换为pager,或把paper转换回trees.具体地说,它可以连接收到的请求与你应用程序的控制器的代码和帮你生成URLs,而不用做为一个字符串硬编码.

1.1connecting URLs to Code;
当你的应用程序收到的请求为:
GET /patients/17
Rails里的路由引擎就是一段分发这个请求到应用程序合适的位置进行处理的一段代码.在这个案例中,这个应用程序很可能以运行patients控制器里的show结束.显示patients ID为17的详细信息.

1.2 Generateing URLs from Code
Routing 也可以反过来运行,如果你的应用程序中包含这样的代码:

@patient=Patient.find(17)
<%= link_to "Patient Record",patient_path(@patient)%>

这时路由引擎转换这个链接到一个URL:http://example.com/patients/17.以这种方式你可以降低应用程序的脆弱性,使你的代码更加容易阅读和理解.

Patient 必须作为一个resource被声明为一个资源,通过named route来转换.

2.Quick Tour of Routes.rb

在Rails中routing有两种组件,routing engine本身,它做为Rails的一部分,config/routes.rb文件,它包含实际的可用在应用程序中的routes.

2.1 Processing the File
在形式上,Routes.rb文件也就是一个大大的block,会被放入ActionController::Routing::Routes.draw.
在这个文件中有五种主要的样式:
RESTful Routes
Named Routes
Nested Routes
Regular Routes
Default Routes

2.2 RESTful Routes
RESTful Routes 利用rails嵌入式REST方法来将routing的所有信息包装为一个单独的声明.eg: map.resource :books

2.3 named Routes
named routes 在你的代码中给你很可读的链接,也可以处理收到的请求

map.login '/login' ,:controller=>'session',:action=>'new'

2.4 Nested routes

Nested routes可以在一个资源里声明另一个资源.

map.resources :assemblies do |assemblies|
 assemblies.resources :parts
end

2.5 Regular Routes
map.connect 'parts/:number',:controller=>'inventory',:action=>'show'

2.6 Default Routes
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

posted @ 2008-12-19 14:12 bobqiu 阅读(215) | 评论 (0)编辑 收藏