xiaoqiu369

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            7 Posts :: 3 Stories :: 2 Comments :: 0 Trackbacks

          2009年3月4日 #

          注:rails的版本是2.0以上.

          1.在application.rb里添加分頁(yè)信息方法:

          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頁(yè)面:
           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 "上一頁(yè)",{:page=>@pages.previous_page,:keyWord=>@keyWord} %>
          12 <%=link_to "下一頁(yè)",{:page=>@pages.next_page,:keyWord=>@keyWord} %>
          13 <br/>
          14 <%=will_paginate @users%>
          15 </p>
          posted @ 2009-03-04 20:00 bobqiu 閱讀(237) | 評(píng)論 (1)編輯 收藏

          2009年2月20日 #

          按照網(wǎng)上傳統(tǒng)的方法安裝幾次都沒(méi)有成功.最后只有下載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.從網(wǎng)上下載ferrect_ext.so文件,copy到 ferret-0.11.5-x86-mswin32\lib目錄(跟ferret.rb同一目錄)

          如果直接下載源碼安裝運(yùn)行ruby setup.rb.會(huì)出現(xiàn)"the c extensions could not be installed"的錯(cuò)誤


          手動(dòng)安裝plugins

          將下載的源文件放到vendor/plugins里面,進(jìn)入該目錄,運(yùn)行ruby install.rb

          出現(xiàn)的問(wèn)題:

          => 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將這個(gè)文件放到lib里面.這個(gè)是200多K,而從網(wǎng)上下載的才30K.導(dǎo)致上面的問(wèn)題.

          posted @ 2009-02-20 22:31 bobqiu 閱讀(954) | 評(píng)論 (0)編輯 收藏

          2009年2月7日 #

          1.驗(yàn)證碼:recaptcha
          gem install --source http://www.loonsoft.com/recaptcha/pkg/ recaptcha

          2.搜索:acts_as_searchable是一個(gè)Rails插件,它依賴(lài)于Hyper Estraier這個(gè)獨(dú)立的搜索引擎所提供的索引和搜索服務(wù) 
                      ferret gem install ferret -v=0.11.5 --platform mswin32  
          3.pdf:
          gem install pdf-writer  

          4.測(cè)試:
          RSpec+Mocha

          5.桌面應(yīng)用
          gem install anvil

          posted @ 2009-02-07 14:57 bobqiu| 編輯 收藏

          2009年1月19日 #

          使用插件

          1/ will_paginate

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

           

          這個(gè)資料很多,不多說(shuō)

           

          2/ squirrel

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

           

          主要實(shí)現(xiàn) 動(dòng)態(tài)條件的查詢(xún),擴(kuò)展ActiveScaffold find方法。支持跨Model查詢(xún),具體見(jiàn)

              說(shuō)明:http://thoughtbot.com/projects/squirrel

           

          貼段主要實(shí)現(xiàn)代碼

          #controller:

          def index

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

          #下面代碼可以按實(shí)際情況提取到Model或其他地方;方便測(cè)試我直接放在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| %>
              公司名稱(chēng) :<%= text_field_with_auto_complete :contact, :company,{},{:method=>:get}%>  <br>
              證書(shū)類(lèi)型 :<%= text_field_with_auto_complete :permission, :name,{},{:method=>:get}%>  <br>
              證書(shū)編號(hào) :<%= text_field_with_auto_complete :permission, :code,{},{:method=>:get}%>  <br>
              授與日期 :<%= text_field_with_auto_complete :permission, :permit_date,{},{:method=>:get}%>  <br>
              <%= submit_tag '查詢(xún)'  %>
             <% 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 閱讀(187) | 評(píng)論 (0)編輯 收藏

          2009年1月5日 #

              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 閱讀(138) | 評(píng)論 (0)編輯 收藏

          2008年12月23日 #

          按照慣例,還是打印出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

          啟動(dòng)服務(wù)在IE中打開(kāi):
          http://localhost:3000/stories
          OK
          posted @ 2008-12-23 16:46 bobqiu 閱讀(175) | 評(píng)論 (0)編輯 收藏

          2008年12月22日 #

          正在嘗試使用 URL E:\eclipse3.1.2\workspace\red51\fla\test51.swf 啟動(dòng)并連接到播放器
          解壓縮后字節(jié)數(shù)為 [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 閱讀(1640) | 評(píng)論 (1)編輯 收藏

          2008年12月21日 #

               摘要: call.fla:  1nc = new NetConnection();  2nc.connect("rtmp://localhost/red5");  3nc.onResult = function(obj) {  4    var ...  閱讀全文
          posted @ 2008-12-21 22:12 bobqiu 閱讀(1639) | 評(píng)論 (0)編輯 收藏

          2008年12月19日 #

          Rails Routing from the Outside In
          http://guides.rails.info/routing_outside_in.html
          這篇文章將介紹Rails routing針對(duì)用戶(hù)方面的一些特性.參考這篇文章,你將會(huì)學(xué)到以下知識(shí):
          a.理解routing的作用
          b.破解routes.rb內(nèi)的代碼
          c.構(gòu)建你自己的routes,可以用classic hash樣式或現(xiàn)在流行的RESTful樣式.
          d.識(shí)別route怎樣與controller和action映射.

          1.The Dual Purpose of Routing

          Rails routing 有兩種機(jī)制,你可以將trees轉(zhuǎn)換為pager,或把paper轉(zhuǎn)換回trees.具體地說(shuō),它可以連接收到的請(qǐng)求與你應(yīng)用程序的控制器的代碼和幫你生成URLs,而不用做為一個(gè)字符串硬編碼.

          1.1connecting URLs to Code;
          當(dāng)你的應(yīng)用程序收到的請(qǐng)求為:
          GET /patients/17
          Rails里的路由引擎就是一段分發(fā)這個(gè)請(qǐng)求到應(yīng)用程序合適的位置進(jìn)行處理的一段代碼.在這個(gè)案例中,這個(gè)應(yīng)用程序很可能以運(yùn)行patients控制器里的show結(jié)束.顯示patients ID為17的詳細(xì)信息.

          1.2 Generateing URLs from Code
          Routing 也可以反過(guò)來(lái)運(yùn)行,如果你的應(yīng)用程序中包含這樣的代碼:

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

          這時(shí)路由引擎轉(zhuǎn)換這個(gè)鏈接到一個(gè)URL:http://example.com/patients/17.以這種方式你可以降低應(yīng)用程序的脆弱性,使你的代碼更加容易閱讀和理解.

          Patient 必須作為一個(gè)resource被聲明為一個(gè)資源,通過(guò)named route來(lái)轉(zhuǎn)換.

          2.Quick Tour of Routes.rb

          在Rails中routing有兩種組件,routing engine本身,它做為Rails的一部分,config/routes.rb文件,它包含實(shí)際的可用在應(yīng)用程序中的routes.

          2.1 Processing the File
          在形式上,Routes.rb文件也就是一個(gè)大大的block,會(huì)被放入ActionController::Routing::Routes.draw.
          在這個(gè)文件中有五種主要的樣式:
          RESTful Routes
          Named Routes
          Nested Routes
          Regular Routes
          Default Routes

          2.2 RESTful Routes
          RESTful Routes 利用rails嵌入式REST方法來(lái)將routing的所有信息包裝為一個(gè)單獨(dú)的聲明.eg: map.resource :books

          2.3 named Routes
          named routes 在你的代碼中給你很可讀的鏈接,也可以處理收到的請(qǐng)求

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

          2.4 Nested routes

          Nested routes可以在一個(gè)資源里聲明另一個(gè)資源.

          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 閱讀(226) | 評(píng)論 (0)編輯 收藏

          2008年12月16日 #

          routes:

          routes的命名允許你減少重復(fù)的代碼,通過(guò)分配一個(gè)根據(jù)生成一個(gè)封裝routes rule hash的方法的路徑規(guī)則名稱(chēng)來(lái)實(shí)現(xiàn),
          你可以定義一個(gè)命名路徑,你可以調(diào)用它在你的routes.rb文件中來(lái)代替connect方法.
          例如:
          map.home '',:controller=>'main',:action=>'start'
          這只是為你做了很少的一點(diǎn)事.首先,它創(chuàng)建一個(gè)名為home_url的方法.因此上面的命名規(guī)則,前期的請(qǐng)求為:
           redirect_to :controller=>'main',:action=>'start' 現(xiàn)在為:
           redirect_to home_url

          因?yàn)?_to方法被重寫(xiě)的方式,在上面的情況,你沒(méi)有將參數(shù)傳遞給命名路徑,你也可以將它傳遞給一個(gè)引用的方法.
           redirect_to :home_url

          注意:將命名路徑做為一個(gè)符號(hào)已經(jīng)取消了,在rails2.0將被刪除.

          這個(gè)也能應(yīng)用于是tests.如果在你的controller里有redirect_to home_url,也可以用 assert_redirect_to home_url.

          *_url方法需要一個(gè)唯一的可選參數(shù).這個(gè)參數(shù)是一個(gè)hash,插入url_for之中,這樣做就是為了當(dāng)用redirect_to,link_to時(shí)命名規(guī)則可以參數(shù)化.

          你如果說(shuō)有這樣的route

           map.user_page 'users/:user',:controller=>'users',:action=>'show'

          你可以這樣做

           link_to @user.username,user_page_url(:user=>@user)

          注釋:這個(gè)僅僅象普通的routes,表單是path_part/:symbol.在上面的例子中,user這部分將只展示在路徑中,并不嚴(yán)格與controller相關(guān)聯(lián).users/只是path生成的部分,
          上面的例子生成<a href="http://localhost/users/7">http://localhost/users/7</a>
          比如:

          :user 是你定義的參數(shù)名稱(chēng),如果定義兩個(gè)一模一樣的路徑,很可能得不到你想要的結(jié)果.對(duì)于routes,定義默認(rèn)值.

          當(dāng)用參數(shù)來(lái)命名routes,你必須傳遞參數(shù)給assert中的命名規(guī)則.如果在你的controller中有redirect_to user_page_url(:user=>@user), 你需要有assert_redirected_to user_page_url(:user=>@user).controller中@user的id必須與test中的@user的id匹配.

          除了[route_name]_url方法,你可以用hash_for_[route_name]_url方法,這個(gè)方法包裝hash,沒(méi)有調(diào)用url_for

          所有的reoute將其它的命名規(guī)則用map.connect提供給你.

          posted @ 2008-12-16 09:58 bobqiu 閱讀(185) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 娱乐| 甘孜| 进贤县| 章丘市| 鞍山市| 葵青区| 万年县| 大荔县| 兰坪| 云浮市| 荔浦县| 盐津县| 宁乡县| 怀集县| 怀化市| 丽水市| 永宁县| 海口市| 万年县| 五原县| 泾川县| 自治县| 平和县| 昆山市| 黄大仙区| 巴塘县| 定陶县| 吕梁市| 团风县| 玛纳斯县| 蕲春县| 噶尔县| 承德市| 禹城市| 泸西县| 申扎县| 保德县| 白山市| 宝应县| 开封市| 潜山县|