??xml version="1.0" encoding="utf-8" standalone="yes"?>成人免费视频观看视频,日韩久久一区,中文字幕一区二区三区四区不卡 http://www.aygfsteel.com/fl1429/category/38081.htmlJava,Ruby,Php,Flex,Ajax,UI,Google,Twitter,Firefox,Ubuntu,Opensource,Designer,Blogger,Web2.0zh-cnTue, 29 Dec 2009 05:32:26 GMTTue, 29 Dec 2009 05:32:26 GMT60Jquery pagination like twitter more buttonhttp://www.aygfsteel.com/fl1429/archive/2009/09/25/296448.htmlfl1429fl1429Fri, 25 Sep 2009 08:50:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/09/25/296448.htmlhttp://www.aygfsteel.com/fl1429/comments/296448.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/09/25/296448.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/296448.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/296448.html
效果和xiaonei?nbsp; 更多新鲜?nbsp; 一P


前面有篇文章也介l了一个像 twitter more 的方式分늚ҎQ不q那个是?protorype 做的。。那个做h单一点,因ؓrailsl我们封装了 insert_html ?link_to_remote {方法,q样更加便捷Q但是解决jquery ?prototype的confilct是一件很让h头疼的事Q烦性今天又实现了一个基?jquery 的方?环境是在rails中,需要?will_paginate 插gQ?br />Demo:

view:

<script>
(function($){
    var settings;

    $.bottomlessPagination = function(callerSettings) {
        settings = $.extend({
            ajaxLoaderPath:'/images/loading.gif',
            results:'.results', // results q回l果外部的class
            objName:'',
            callback:null
        },callerSettings||{});
        settings.imgLoader = new Image();
        settings.imgLoader.src = settings.ajaxLoaderPath;
        settings.href = $(".current").next().attr("href"); //current ?will_paginate 默认的当前页 href 的名?br />
        if ($('div.pagination').size() > 0){ // pagination ?will_paginate 默认?class
            $('div.pagination').wrap("<div class='pagination_links'></div>").hide();
            $('.pagination_links').append(
                "<div class='live_pagination'>" +
                "<a class='more_links' style='cursor:pointer;'> 查看 " + settings.objName + "...</a>" +
                "</div>"
                );
        }
   
        $(".more_links").click(function(){ 
            $(".live_pagination").hide();          
            if ($(".now_loading").size() == 0)              
                $(".more_links").after("<img class='now_loading' src='"+settings.imgLoader.src+"' />");          
            else
                $(".now_loading").show();           
            $.get(
                settings.href,'',function(data){
                    $(settings.results).addrows(data);
                    $(".now_loading").hide();
                    $(".live_pagination").show();
                }
                );
            return false;
        });

        $.fn.addrows = function(data) {
            //remove live pagination if there are no more results
            // alert(data.length);
            if (data.length === 1 ){
               // alert(data.length);
                $('.live_pagination').remove();
                $('.pagination_links').append(
                    "<div class='no_pagination'>" +
                    "没有" + settings.objName +
                    "</div>"
                    );
                return false;
            }
            //change the href
            ind=settings.href.indexOf("page=");
            page=parseInt(settings.href.charAt(ind+5))+1;
            start=settings.href.slice(0,ind+5);
            stop=settings.href.slice(ind+6);
            settings.href=start.concat(page.toString()).concat(stop);

            //add results to the page
            $(settings.results).append(data);
            if (settings.callback) settings.callback();
        };
    };
})(jQuery);
</script>


          <div class="results">
            <%= render :partial => 'activity' , :collection => @all_feed  %>
          </div>
          <%= will_paginate @all_feed  ,
            :class => 'pagination',          
            :previous_label => '&laquo; Previous',
            :next_label     => 'Next &raquo;',
            :renderer => 'WillPaginate::LinkRenderer' %>
          <div>
<div class="now_loading" style="display:none;">
  <img src="http://www.aygfsteel.com/images/loading.gif"></img>
</div>
<script>
  $.bottomlessPagination({objName:'更多更新', callback:function(){
      //highlight current row
      //  $("div.results").effect("highlight", {}, 3000);
    }});
</script>



Action:
def index

    if request.xhr?    
        sleep(1) # make request a little bit slower to see loader :-)   
          render :partial => 'activity' , :collection => @all_feed
end


partial:_activity.html.erb
partial 里输出数据即?br />

主要的注意点是注意对应class 不要写错了,同样Q你也可以把class 换位id做,jquery取idpP $("#ID")

上面js文g下蝲Q?br />http://www.dbank.com/download.action?k=3094283bf64e445f9530ac0554ebc9ce

ref:
http://github.com/davidwparker/jquery-bottomless-pagination




fl1429 2009-09-25 16:50 发表评论
]]>
Rails sphinx + libmmseg + ultrasphinx 全文?/title><link>http://www.aygfsteel.com/fl1429/archive/2009/09/22/296066.html</link><dc:creator>fl1429</dc:creator><author>fl1429</author><pubDate>Tue, 22 Sep 2009 09:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/fl1429/archive/2009/09/22/296066.html</guid><wfw:comment>http://www.aygfsteel.com/fl1429/comments/296066.html</wfw:comment><comments>http://www.aygfsteel.com/fl1429/archive/2009/09/22/296066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fl1429/comments/commentRss/296066.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fl1429/services/trackbacks/296066.html</trackback:ping><description><![CDATA[上一遍介l了 thinking_sphix 的用,q次来介l?ultrasphinx 的用,二者都?对sphinx的封装,都是rails的pluginQؓ了更好的利用rails调用sphinxҎ。。?br /><br />前面的配|一?br /><br />Demo:<br />1,安装 chronic<br />gem install chronic<br /><br />2,安装插g<br />ruby script/plugin install  svn://rubyforge.org/var/svn/fauna/ultrasphinx/trunk <br />q个是网上提供的ҎQ目前似乎找不到q个源了。。徏议直接从github download 下蝲<br />http://github.com/fauna/ultrasphinx<br /><br />3Q安装完Ultrasphinx之后Q将Q?<br />vendor/plugins/ultrasphinx/examples/default.base <br />复制刎ͼ <br />config/ultrasphinx/default.base <br />其中的Q?<br />charset_type = utf-8 <br />改ؓQ?<br />charset_type = zh_cn.utf-8 <br /><br />q且在charset_type讄的下面加入一行: <br />charset_dictpath =  /home/feng/RailsProject/Search/lib  Q?你uni.lib 字典所在的路径<br />然后删除所有charset_table的设|?<br /><br />4QModel<br />  is_indexed :fields => ['created_at', 'name']<br />  is_indexed :fields => ['created_at', 'content']<br /><br />5Qaction<br />  def index<br /># thinking_sphinx<br />#    @articles = Article.search params[:search], :include => :author, :match_mode => :boolean<br />#ultrasphinx<br />    @search = Ultrasphinx::Search.new(:query => params[:search])<br />    @search.run<br />    @articles = @search.results<br />  end<br /><br />6,生成配置文gQ?<br /><strong>rake ultrasphinx:configure</strong> <br />在config/ultrasphinx下创Z一个development.confQ这个文件就是Sphinx的配|文件?<br /><br />7,创徏索引Q?<br /><strong>rake ultrasphinx:index</strong> <br />索引创徏在了 default.base 中你定义的path 路径?br /><br />8Q?启动Sphinx的searchd服务Q?<br /><strong>rake ultrasphinx:daemon:start</strong> <br /><br />对应的停止是  <strong>rake ultrasphinx:daemon:stop</strong><br /><br />9,启动webrick<br /><br />ok了。。?br />目下蝲Q?br />http://www.uushare.com/user/fl1429/file/2043752<br /><br />ref:<br />http://www.javaeye.com/topic/200065?page=1<br />http://github.com/fauna/ultrasphinx<br /><br /><br /><br /><br /><div id="wmqeeuq" class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=82f41e76-5bc6-8655-a78f-c09741217728" /></div><img src ="http://www.aygfsteel.com/fl1429/aggbug/296066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fl1429/" target="_blank">fl1429</a> 2009-09-22 17:46 <a href="http://www.aygfsteel.com/fl1429/archive/2009/09/22/296066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rails sphinx + libmmseg + thinking_sphinx 全文?/title><link>http://www.aygfsteel.com/fl1429/archive/2009/09/22/296052.html</link><dc:creator>fl1429</dc:creator><author>fl1429</author><pubDate>Tue, 22 Sep 2009 09:15:00 GMT</pubDate><guid>http://www.aygfsteel.com/fl1429/archive/2009/09/22/296052.html</guid><wfw:comment>http://www.aygfsteel.com/fl1429/comments/296052.html</wfw:comment><comments>http://www.aygfsteel.com/fl1429/archive/2009/09/22/296052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fl1429/comments/commentRss/296052.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fl1429/services/trackbacks/296052.html</trackback:ping><description><![CDATA[环境: sphinx 0.9.8 rc2 + libmmseg 0.7.3 + thinking_sphinx 1.2.8 + ubuntu 8.1.0 Desktop version<br /> <br /> 效果预览Q?br /> 1Q?http://www.zikii.com/ q个|站 也是Z sphinx 实现?br /> 2Q我?br /> <img style="max-width: 800px;" src="http://www.aygfsteel.com/images/blogjava_net/fl1429/snapshot28.png" alt="" /><br /> <br /> <br /> ׃目需要,需要实现站内搜索,全文索和 中文分词 功能Q最后选型?sphinx + libmmseg + thinking_sphinx Q?折腾了好大一会,最后测试成?br /> sphinx 是俄国h开发的opensourse 搜烦引擎Q烦引速度很快Q?libmmseg 是中国h开发的中文分词E序Qthinking_sphinx 是封装调用sphinx的rails plugin<br /> <br /> 下面用到的所有资?打包下蝲Q?br /> http://www.uushare.com/user/fl1429/file/2043579<br /> <br /> 1Q项目的所有的源码~译安装 Q?全部Ud /root 下进?凡是出现权限不够的, 在命令前加上 sudo <br /> <br /> 2Q安?libmmseg<br /> <br /> ./configure<br /> make<br /> make install <br /> 具体可以参考:<br /> http://www.coreseek.cn/opensource/mmseg/<br /> <br /> 3,安装 ruby 扩展Q进?mmseg ruby 目录?Q注意最后面有一个点Q?br /> <br /> cd ruby<br /> cp /usr/local/include/mmseg/*.h . <br /> <pre>cp ../src/*.h . <br /> <br /> cp ../src/css/*.h . <br /> ruby extconf.lin.rb<br /> make<br /> sudo make install<br /> 成功的话Q可以到irb下,试看看是否成功?br /> irb  <br /> require 'mmseg'<br /> 注意:如果在这一步出?且出错提CZؓQ?br /> <br /> css/UnigramCorpusReader.cpp:89: error: ’strncmp’ was not declared in this scope<br /> <br /> 则需手工~辑.src/css目录下UnigramCorpusReader.cpp 文g,在其W一行加?br /> <br /> #include <string.h><br /> <br /> 然后重新 make,卛_通过<br /> <br /> 4Q创典文?br /> <br /> q入 mmseg ?data 目录?br /> <br /> mmseg -u unigram.txt<br /> <br /> 把生成的文g名改?uni.lib<br /> <br /> 5,安装sphinx (把两个补丁放?解压??sphinx?<br /> <br /> cd sphinx-0.9.8-rc2<br /> <br /> patch -p1 < sphinx-0.98rc2.zhcn-support.patch Qpatch中文补丁<br /> <br /> patch -p1 < fix-crash-in-excerpts.patch # patch 防crash 补丁<br /> <br /> Copy mmseg安装文g夹下 src/csr_typedefs.h ?br /> <br /> src/css/SegmenterManager.h 到Sphinx安装文g夹下?src<br /> <br /> 文g夹下<br /> <br /> ./configure<br /> <br /> make<br /> sudo make install<br /> <br /> 注意Q如果在q一步出?br /> <br /> /usr/local/include/mmseg/freelist.h:22: error: ‘strlen’ was not declared in this scope<br /> <br /> 的错误,手工修改 /usr/local/mmseg/include/mmseg/freelist.h<br /> <br /> 在上面添?br /> #include <string.h><br /> <br /> 以上的配|?sphinx 支?中文分词 搜烦了。。?br /> <br /> Demo:<br /> <br /> 1,依照 Ryan 的例?配置 好基本的英文搜烦 <br /> <br /> http://railscasts.com/episodes/120-thinking-sphinx<br /> <br /> 2Q重Ҏ model 里的 定义索引 <br /> <br /> define_index do<br /> <br /> indexes content<br /> indexes :name, :sortable => true<br /> indexes comments.content, :as => :comment_content<br /> indexes [author.first_name, author.last_name], :as => :author_name<br /> has author_id, created_at<br /> end<br /> <br /> 3Q把上面生成?uni.lib 辞典文g 拷入 目?lib ?Q或者别的地方,看你配置里的charset_dictpath?不编译的话,可以用别人现成的uni.libQ?br /> <br /> 4Q在目?config 下新Z?sphinx.yml 文g<br /> development: &my_settings<br /> enable_star: 1<br /> min_prefix_len: 0<br /> min_infix_len: 2<br /> min_word_len: 1<br /> max_results: 70000<br /> morphology: none<br /> listen: localhost:3312<br /> charset_dictpath: /home/feng/RailsProject/Search/lib<br /> test:<br /> <<: *my_settings<br /> production:<br /> <<: *my_settings<br /> <br /> 上面?br /> /home/feng/RailsProject/Search/lib 可以写成 "#{RAILS_ROOT}/lib"<br /> 5Q生成配|文?br /> <br /> rake ts:config<br /> <br />  q样config 下会生成一?development.sphinx.conf 文g<br /> <br /> 扑ֈ charset_type = utf-8 把后?utf-8 修改?zh_cn.utf-8,q在下面d如下语句<br /> <br /> charset_dictpath = /home/feng/RailsProject/Search/lib Q你工程的lib路径Q?br /> <br /> 6Q徏立烦?br /> <br /> rake ts:index INDEX_ONLY=true<br /> 注意后面必须d INDEX_ONLY=true不然的话Q配|文件会被重|?q有不要写成 INDEX_ONLY = true<br /> <br /> <br /> 7Q启动sphinx服务<br /> <br /> rake ts:start<br /> 8,启动webrick <br /> <br /> 注意Qsphinx 必须在webrick的前?先启?br /> 我的demo目Q其实就是上面ryan 的,下蝲后可以看到我的具体配|,或者详l的内容<br /> <br /> http://www.uushare.com/user/fl1429/file/2043752<br /> <br /> <br /> ref:<br /> http://wiki.github.com/cogentsoft/zbs/180787<br /> http://www.javaeye.com/topic/431217?page=1<br /> http://www.javaeye.com/topic/196451<br /> http://blog.sina.com.cn/s/blog_412d58ec010090pq.html<br /> http://freelancing-god.github.com/ts/en/rake_tasks.html<img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=0d347e6f-bad1-84f2-b63e-e0138c655057" /></pre> <img src ="http://www.aygfsteel.com/fl1429/aggbug/296052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fl1429/" target="_blank">fl1429</a> 2009-09-22 17:15 <a href="http://www.aygfsteel.com/fl1429/archive/2009/09/22/296052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rails Jquery scrolling pagenationhttp://www.aygfsteel.com/fl1429/archive/2009/09/08/294299.htmlfl1429fl1429Tue, 08 Sep 2009 06:29:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/09/08/294299.htmlhttp://www.aygfsteel.com/fl1429/comments/294299.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/09/08/294299.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/294299.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/294299.htmlruby 1.8.7 + Rails 2.1.0 + ubuntu 8.1.0

效果Q?br />http://www.dzone.com/links/index.html
http://flexidev.co.za/projects/jqpageflow/
http://paperc.de/documents

像上面的三个|站 的分|?是 scrolling pagination , 或??pageless pagination , endless pagination 用这些作为关键字Q?都会搜到很多的demoQ?q里我介l?一U?demoQ开?环境 ?rails Qof course , 你也可以在其他的q_使用。?br />
最?一直在用各U?分页的效果,一般都?ajax的, 例如前面 有介l了 prototype pagenation like twitter more button, q有 jquery ajax pagenation,q里又是 jquery scrolling pagination.....

Demo:

依赖?
will_paginate 插g
jquery.js
jquery.pageless.js

请到 下面?那个 ref link 里下

Action:

 def show
    @client_info = ClientInfo.find(params[:id])
    @comments = @client_info.comments.paginate(:per_page => 5 , :page => params[:page])

    if request.xhr?
      sleep(2) # make request a little bit slower to see loader :-)
      render :partial => 'comment' , :collection => @comments #q回 数据的partial
    end
end


解释 Q?server ?br />
helper method :

  # scrolling paginate like greader
  def pageless(total_pages, url=nil)
    opts = {
      :totalPages => total_pages,
      :url        => url
      #:loaderMsg  => '加蝲?..'
    }
    javascript_tag("$('#ajaxcomments').pageless(#{opts.to_json});")
  end


解释; 装了一?pageless ҎQ即实现 scrolling load 的的Ҏ

view: show.html.erb

..............
 <%= render :partial => 'wall' %>
.........................


解释 Q?前端 view


partial : _wall.html.erb

  <div class="wall" id ="ajaxcomments">
    <%- unless @client_info.comments.empty? -%>
      <%= render :partial => 'comment', :collection => @comments %>
    <%- end -%>
    <%= will_paginate @comments  ,
      :class => 'pagination',
      :previous_label => '&laquo; Previous',
      :next_label     => 'Next &raquo;',
      :renderer => 'WillPaginate::LinkRenderer' %> <%#= pageless must use will_paginate default style %>
    <%= pageless(@comments.total_pages, client_info_path(@client_info))  %>
  </div>

解释 Q?注意q里需?定义 一?idQ?q有 是 will_paginate 里的那些 参数 可以 不要 的,q里我加的,是因?我的 enviroment.rb ?加了 will_paginate ?配置Q如?你没有的话, 可以L?br />partial : _comment.html.erb
..............
<%= display comment.body %>
.........................

解释 Q?昄?内容

ref :
http://github.com/jney/jquery.pageless/tree/master




fl1429 2009-09-08 14:29 发表评论
]]>
Rails 很好用的?anchor)标记http://www.aygfsteel.com/fl1429/archive/2009/09/04/293927.htmlfl1429fl1429Fri, 04 Sep 2009 10:35:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/09/04/293927.htmlhttp://www.aygfsteel.com/fl1429/comments/293927.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/09/04/293927.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/293927.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/293927.html
anchor 说白?是 q入 q个 面的时候, 定位到页面指定的部分Q例如一个个人用L界面Q最下面是留a版,如果你采用传l的方式提交留言的话Q那么就可以使用anchor定位提交后显C的位置

使用ҎQ?br />
1,url标识

a href = ............./network#Comment

network.html.erb
<a name="Comment"></a>

只要在network.erb.html 面中加?nbsp; 上面 那句话, 加在哪里 定位显C在哪了,或?指定一?div的idgؓ Comment 卛_

2Qrails 自带?:anchor 参数

url or path :
 user_path(@user,:anchor => 'Comment')
 user_url(@user,:anchor => 'Comment')

上面在rails RESTful 架构的程序中 l常 可见q种路径写法Q那么你可以利用 :anchor 来标识。。?br />


fl1429 2009-09-04 18:35 发表评论
]]>
rails jquery autocompletehttp://www.aygfsteel.com/fl1429/archive/2009/09/04/293880.htmlfl1429fl1429Fri, 04 Sep 2009 06:40:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/09/04/293880.htmlhttp://www.aygfsteel.com/fl1429/comments/293880.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/09/04/293880.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/293880.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/293880.html

记得以前文章写过 rails autocomplete 插g的用方法, 那个是基?prototype 的, qxJquery用的最多。。所以必ȝjquery 实现 Q?q样?demo |上太多。。。。下面介l在rails 中的一Usolution

需要的Q?br /> jquery.js
jquery.complete.js
jquery.autocomplete.css

demo :

View:

<script>
  $(document).ready(function() {
    $("#recipient").autocomplete("/myaccount/res_message", {
      delay:10,
      minChar: 1,
      multiple: true,
      parse: function(data) {   
        return $.map(eval(data), function(item) {
          return {       
            data: item,
            value: item.name,
            result: item.name
          }
        });
      },
      formatItem: function(item) {
        return item.show;
      }
    }).result(function(e, item)
    {       
      $("#recipient").val(item.name);
    });
  });
</script>
<p><%= text_field_tag :recipient, :id => 'recipient' %></p>


解释Q?br /> #recipient 是对应的 id
/myaccount/res_message 对应h?url
item是参?br /> name ?show ?q回的变?br />
action:
  def res_message

    key = params[:q] if params[:q]
    @result = ClientInfo.get_login_name(key, '' , 'key')
   
    respond_to do |format|
      format.js # default : res_message.js.erb
    end
  end


解释 params[:q]  q 是默认向后台发送的关键字查?参数Q?q且默认的limit ?0 条数?br />
view:res_message.js.erb

<% if @result -%>
<% i=0 %>[
  <% for result in @result %>
     <% if i==0 %>
    {name:"<%= result.login_name %>",show:"<%= result.login_name + " " %>" + "<%= result.sure_name.nil? ? " " : result.sure_name + " " %>"}
    <% else %>
      ,{name:"<%= result.login_name %>",show:"<%= result.login_name + " " %>" + "<%= result.sure_name.nil? ? " " : result.sure_name + " " %>"}
    <% end %>
      <% i+=1 -%>
  <% end -%>]
<% end -%>

解释Q?该view 是返回的数据Q返回的是一个JSON数组

具体详细的可以参考:
http://docs.jquery.com/Plugins/Autocomplete
http://view.jquery.com/trunk/plugins/autocomplete/demo/


 



fl1429 2009-09-04 14:40 发表评论
]]>
Rails will_paginate ajax pagination with jqueryhttp://www.aygfsteel.com/fl1429/archive/2009/08/25/292522.htmlfl1429fl1429Tue, 25 Aug 2009 07:28:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/08/25/292522.htmlhttp://www.aygfsteel.com/fl1429/comments/292522.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/08/25/292522.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/292522.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/292522.html
效果预览Q?br />

一?我们 在rails ?分页 will_paginate 是必不可的插gQ但?一般都是基?prototype 的,例如 ajax 式的分页Q?通过 RemoteLinkRenderer改变 css 样式{等Q都?Zprototype 的,但是 prototype ?Jquery 在项目中 l常遇到conflict Q这??让h 头疼Qrails 装好的ajaxҎQ好?都因?jquery 不能用,jquery 那么 ?前端 用户体验Q又因ؓ prototype 出现 conflict Q??Z?怺D杀 呢。。。。?br />
上面实现的核心思想 ?前端 通过 jquery?异步调用数据Q?后台 rails 通过 respond_to fotmat.js 的方?l予 q回数据。。?br />
Demo:

layout 中导入:
    <%= stylesheet_link_tag 'pagination' -%>
    <%= javascript_include_tag 'jquery' %>

pagination 是改变分늚样式


Action:

  def index
    @products = Product.paginate(:per_page => 10, :page => params[:page])
    respond_to do |format|
      format.html                        #default : index.html.erb
      format.js {:layout => false} # default : index.js.erb
    end
  end


View:

index.html.erb

<div id="product">
  <%= render :partial => 'products' %>
</div>

index.js.erb

$("#product").html("<%= escape_javascript(render :partial => "products") %>");

escape_javascript 是{义的意??<%=h %> q里?h 差不?br />
partial :
_products.html.erb

<script>

$(function() {
  $(".apple_pagination a").live("click", function() {
    $(".apple_pagination").html("Page is loading...");
    $.get(this.href, null, null, "script");
/* alert(this.href); */
    return false;
  });
});

</script>

<%= will_paginate @products , :class => 'apple_pagination' ,:previous_label => '<<上一?, :next_label => '下一?gt;>'   :renderer  => 'WillPaginate::LinkRenderer' %>

<% for product in @products  %>
  <div class="product">
    <h3>
      <%= link_to h(product.name), product %>
      <%= number_to_currency(product.price) %>
    </h3>
  </div>
<% end %>


上面?$(".apple_pagination a")  x will_paginate ?:class Q:renderer 使用的是will_paginate 的default 的,如果 enviroment.rb 中配|了will_paginate的样式,q里不写 :renderer 会出错!Q具体默认的参数 可以查看 will_paginate 下的 view_helpers.rb

全部 源码 下蝲Q?br /> http://www.uushare.com/user/fl1429/file/1941241

配置ҎQ?br /> 1Q进入工E, rake setup
2,ruby script/server
3,okay 成功 了。。。?br />
补充 Q?如果 一?面 有两处需?分页Q那?will_paginate 默认 情况?是同时翻늚。。那?如何 避免呢。。只需?l各自的 will_paginate 指定 不同?class 卛_  例如

will_paginate :

<%= will_paginate collection ,
  :class => "apple_paginate my_paginate",
  :previous_label => '<<上一?,
  :next_label => '下一?gt;>' ,
  :renderer  => 'WillPaginate::LinkRenderer'  %>

apple_paginate ?分页的真正的 cssQmy_paginate 是ؓ?区别 不同区的 分页 而加?br />

jquery script :
  jQuery(function() {
    jQuery(".my_paginate a").live("click", function() { 
      jQuery(".my_paginate").html("正在加蝲...");
      jQuery.get(this.href, {flag : "my" }, null, 'script');
      return false;
    });
  });

注意 jquery get Ҏ?四个参数 ?意义

ref:
http://railscasts.com/episodes/174-pagination-with-ajax
http://soylentfoo.jnewland.com/articles/2007/09/17/resource_this-dry-rails-resource-controllers
http://book.csdn.net/bookfiles/375/10037514155.shtml
http://stackoverflow.com/questions/1268383/format-js-with-rails





fl1429 2009-08-25 15:28 发表评论
]]>
ruby p , puts ?print 的区?/title><link>http://www.aygfsteel.com/fl1429/archive/2009/08/24/292387.html</link><dc:creator>fl1429</dc:creator><author>fl1429</author><pubDate>Mon, 24 Aug 2009 07:12:00 GMT</pubDate><guid>http://www.aygfsteel.com/fl1429/archive/2009/08/24/292387.html</guid><wfw:comment>http://www.aygfsteel.com/fl1429/comments/292387.html</wfw:comment><comments>http://www.aygfsteel.com/fl1429/archive/2009/08/24/292387.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fl1429/comments/commentRss/292387.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fl1429/services/trackbacks/292387.html</trackback:ping><description><![CDATA[在rails 开发中Q最基本的检错误的ҎQ莫q于 puts ?p 的输Z。。。。那?它们有什么区别呢。。?br /><br />查了下, ?p 是经q?inspect 的,inspect的字面意思是 ?Q貌?是检?占位W?Q但是还是云里雾?br /><br />看两个demo<br /><br />oneQ?br /><br /> <font color="#3366ff">p "a", "\nb" <br />l果Q?br />"a"<br />"\nb"</font><br /><br />two:<br /><br /><font color="#3366ff">class SomeClass<br />  def initialize (arg_1, arg_2) # called with SomeClass.new<br />    @member_1 = arg_1<br />    @member_2 = arg_2<br />  end<br />  def print  <br />  puts "member_1: " + @member_1<br />    puts "member_2: " + @member_2<br />  end<br />end<br /><br />sc1 = SomeClass.new('foo', 'bar')<br />puts sc1.inspect<br />p sc1<br />puts sc1</font><br /><br />l果Q?br />#<SomeClass:0xb7c091b4 @member_1="foo", @member_2="bar"><br />#<SomeClass:0xb7c091b4 @member_1="foo", @member_2="bar"><br />#<SomeClass:0xb7c091b4><br /><br />q有是我们 最常用到的。。。查询数据库中一条数据记录集<br /><br /><font color="#3366ff">@post = BlogPost.find(params[:id])<br />    p @post<br />    puts @post</font><br />l果Q?br />#<BlogPost id: 18, blog_id: 30, topic_id: nil, client_info_id: nil, title: "试", body: "试试试试试试试试?..", blog_post_comments_count: 0, type: "BlogPost", created_at: "2009-08-24 03:56:27", updated_at: "2009-08-24 03:56:27"><br />#<BlogPost:0xb595b8b0><br /><br />q样 看v?更一目了然。。?p 把数据库中的 字段 和?都输?了, puts 只输?一?对象的标识。。?br /><br />refQ?br />http://www.adp-gmbh.ch/ruby/language/inspect.html<br />http://stackoverflow.com/questions/1255324/p-vs-puts-in-ruby<br />http://blog.chinaunix.net/u1/37038/showart_489434.html<br /><br /><br /><br /><div id="wmqeeuq" class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=718b3570-1a39-8380-a6f8-67230382eb82" /></div><img src ="http://www.aygfsteel.com/fl1429/aggbug/292387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fl1429/" target="_blank">fl1429</a> 2009-08-24 15:12 <a href="http://www.aygfsteel.com/fl1429/archive/2009/08/24/292387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ruby 中英文؜?截取字符?/title><link>http://www.aygfsteel.com/fl1429/archive/2009/08/24/292371.html</link><dc:creator>fl1429</dc:creator><author>fl1429</author><pubDate>Mon, 24 Aug 2009 06:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/fl1429/archive/2009/08/24/292371.html</guid><wfw:comment>http://www.aygfsteel.com/fl1429/comments/292371.html</wfw:comment><comments>http://www.aygfsteel.com/fl1429/archive/2009/08/24/292371.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fl1429/comments/commentRss/292371.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fl1429/services/trackbacks/292371.html</trackback:ping><description><![CDATA[环境 Q?ruby 1.8.7 + rails 2.1.0 +  ubuntu 8.10<br /> ruby 在截?中文字符串时 l常出现q  。例如:<br /> <br /> <font color="#3366ff">a = "a?中文aaa"<br /> b = 'test'<br /> <br /> p a.size # 17 Q可以看Z个中文字W在ruby中是3个英文字W)<br /> p b.length # 4<br /> puts a.slice(0,13) # a?中�  slice method Q?是start下标处,13是lengthQ?/font><br /> <br /> 最后一个输出最?是ؕ码,在java中是unicode~码没有这个问题,所以我们需要{换下~码来解冟뀂?br /> <br /> 例如在rails?application_helper.rb 定义一个{换的Ҏ<br /> <br />   <font color="#3366ff">def cut_string(charset,src,start,length)<br />     require "iconv"<br />     @conv=Iconv.new("UTF-16",charset)<br />     @reverse_conv=Iconv.new(charset,"UTF-16")<br />     p_start=start.class==Fixnum&&start>=0<br />     p_length=length.class==Fixnum&&length>=0<br />     return "" unless src&&p_start&&p_length<br />     src_utf16=@conv.iconv(src)<br />     cutted_src_utf_16=src_utf16[2*start+2,2*length]<br />     @reverse_conv.iconv(cutted_src_utf_16)<br />   end</font><br /> <br /> view中用:<br /> <br /> <font color="#33ccff"><%<br />     a = 'a 试中?<br />     puts cut_string('UTF-8',a,0,4) # a ?br /> %></font><br /> <br /> ref:<br /> http://my.opera.com/sawpad/blog/show.dml/235183<br /> http://www.javaeye.com/topic/201531<br /> <br /> 补充Q?br /> 真伤心,之前截取字符Ԍ用上面的ҎQ还需要自己封装,自己转码解决Q没惛_rails已经把我们封装好了。。就?truncate Ҏ。。看了下源码真简单,只需要输出对应字W串的chars p决了Q源码:<br /> <br />         def truncate(text, length = 30, truncate_string = "...")<br />           if text<br />             l = length - truncate_string.chars.length<br />             chars = text.chars<br />             (chars.length > length ? chars[0...l] + truncate_string : text).to_s<br />           end<br />         end<br /> <br /> 使用demoQ?br /> <br /> <%<br /> a = 'test'<br /> b = '试中文'<br /> <br /> p truncate(a,2,'...') # "tes..."<br /> p truncate(b,2,'...') # "试?.."<br /> <br /> %><br /> <br /> <br /> 如果需要得到汉字的长度 可以使用 jcode ?里的 jlength<br /> <br /> demo:<br /> <br /> s = "试140字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?br />     140字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?40字测?"<br /> <br /> $KCODE='utf8'<br /> <br /> require 'jcode'<br /> <br /> p s.jsize<br /> <br /> p s.jlength<br /> <br /> ref:<br /> http://blog.guoshuang.com/?p=4769<br /> http://lifegoo.pluskid.org/?p=257<br /> <div id="wmqeeuq" class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=5716af9f-806e-8b9f-bdc2-771230498c1b" /></div> <img src ="http://www.aygfsteel.com/fl1429/aggbug/292371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fl1429/" target="_blank">fl1429</a> 2009-08-24 14:23 <a href="http://www.aygfsteel.com/fl1429/archive/2009/08/24/292371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rails override helper methodhttp://www.aygfsteel.com/fl1429/archive/2009/08/18/291678.htmlfl1429fl1429Tue, 18 Aug 2009 09:48:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/08/18/291678.htmlhttp://www.aygfsteel.com/fl1429/comments/291678.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/08/18/291678.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/291678.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/291678.html
在用到rails <%= time_ago_in_words(activity.created_at).capitalize %> 之前 Ҏ?Q?输出的结果默认是英文的。。如?br />
需要重写原来的ҎQ用的是rails2.1.0 如果是rails 2.2.2之后的,貌似可以使用I18N的。。所以只好重写method?br /> 刚开始是攑֜lib下, 然后在enviroment.rb中require的,但是后来没有成功Q只好放在initializers中了

新徏 date_helper.rb:(可以随便命名)

module ActionView
  module Helpers
    module DateHelper
      def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
        from_time = from_time.to_time if from_time.respond_to?(:to_time)
        to_time = to_time.to_time if to_time.respond_to?(:to_time)
        distance_in_minutes = (((to_time - from_time).abs)/60).round
        distance_in_seconds = ((to_time - from_time).abs).round

        case distance_in_minutes
        when 0..1
          return (distance_in_minutes == 0) ? '于1分钟' : '1 分钟' unless include_seconds
          case distance_in_seconds
          when 0..4   then '于 5 U?
          when 5..9   then '于 10 U?
          when 10..19 then '于 20 U?
          when 20..39 then '半分?
          when 40..59 then '于 1 分钟'
          else             '1 分钟'
          end

        when 2..44           then "#{distance_in_minutes} 分钟"
        when 45..89          then '大概 1 时'
        when 90..1439        then "大概 #{(distance_in_minutes.to_f / 60.0).round} 时"
        when 1440..2879      then '1 ?
        when 2880..43199     then "#{(distance_in_minutes / 1440).round} ?
        when 43200..86399    then '大概 1 个月'
        when 86400..525599   then "#{(distance_in_minutes / 43200).round} 个月"
        when 525600..1051199 then '大概 1 q?
        else                      "过 #{(distance_in_minutes / 525600).round} q?
        end
      end
    end
  end
end   


原来的方法,可以?br /> /usr/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_view/helpers/date_helper.rb 中找?br />
之后重启服务Qokay了。。。。。?br />
refQ?br /> http://www.nabble.com/Rails-2.1-and-ddatetime_select-td17726324.html
http://hervalicio.us/blog/2007/05/10/translating-time_ago_in_words/#comment-16360
http://fsjoy.blog.51cto.com/318484/119541



fl1429 2009-08-18 17:48 发表评论
]]>
Rails 解析rsshttp://www.aygfsteel.com/fl1429/archive/2009/08/18/291610.htmlfl1429fl1429Tue, 18 Aug 2009 02:45:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/08/18/291610.htmlhttp://www.aygfsteel.com/fl1429/comments/291610.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/08/18/291610.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/291610.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/291610.html
打开 http://www.google.cn/finance?q=600001 q个|址 可以看到 h财经?右侧 有个新闻区。。。这个新d是从别的地Ҏ取来?br /> 截图Q?br />

现在我们也来仿照它来实现一个,首先rails解析rss有两U方式,一U是用封装好的类库,一U是用原始的解析xml的方?或者利用别人封装好的库 例如feedtools, rubyrss {?br /> 用类库的ҎQ?br />     require 'rss/2.0'
    require 'open-uri'
    url = "http://news.google.cn/news?pz=1&ned=ccn&hl=zh-CN&topic=b&output=rss"
    @feed = RSS::Parser.parse(open(url).read, false)
    @feed.items.each do |item|
      puts item.title
      puts item.link
      puts  item.description
    end


解析xml的方法:
在lib下徏立一个RssParser的类Q这样在M地方都可以调?br /> class RssParser
  require 'rexml/document'
  def self.run(url)
    xml = REXML::Document.new Net::HTTP.get(URI.parse(url))
    data = {
      :title    => xml.root.elements['channel/title'].text,
      :home_url => xml.root.elements['channel/link'].text,
      :rss_url  => url,
      :items    => []
    }
    xml.elements.each '//item' do |item|
      new_items = {} and item.elements.each do |e|
        new_items[e.name.gsub(/^dc:(\w)/,"\1").to_sym] = e.text
      end
      data[:items] << new_items
    end
    data
  end
end


action中用:
  def test
    feed = RssParser.run("http://news.google.cn/news?pz=1&ned=ccn&hl=zh-CN&topic=b&output=rss")
    feed1 = feed[:items][0]
    feed2 = feed[:items][0]
    feed3 = feed[:items][0]
    # combine the feeds into an array
    @feeds = [feed1, feed2, feed3]
    # parse the pubDate strings into a DateTime object
    @feeds.each {|x| x[:pubDate] = DateTime.parse(x[:pubDate].to_s)}
    # iterate through each feed, sorting by pubDate
    @feeds.sort! {|a,b| a[:pubDate] <=> b[:pubDate]}
    # reverse the array to sort by descending pubDate
    @feeds.reverse!
    @feeds.each do |feed|
      puts feed[:title]
      puts feed[:link]
      puts feed[:pubDate]
    end
  end


那么上面的title link description 是从哪里来的呢。。。这个是rss2.0的xmll构Q一般情况下是这LQ?br />
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
  <title>Example Feed</title>
<description>Insert witty or insightful remark here</description>
<link>http://example.org/</link>
<lastBuildDate>Sat, 13 Dec 2003 18:30:02 GMT</lastBuildDate>
<managingEditor>johndoe@example.com (John Doe)</managingEditor>
<item>
<title>Atom-Powered Robots Run Amok</title>
<link>http://example.org/2003/12/13/atom03</link>
<guid isPermaLink="false">urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</guid>
<pubDate>Sat, 13 Dec 2003 18:30:02 GMT</pubDate>
<description>Some text.</description>
</item>
</channel>
</rss>

或者你可以查看rss的页面源代码Q或者puts?nbsp; @feed = RSS::Parser.parse(open(url).read, false)的结果都可以看到上面的这中xml文l构

好,下面我们开始实C面图的新闻:
我们可以把这个部分放在partial里,所以只需要helper和partial文g
helperQ?br /> def feed_collection(param)
require 'rss/2.0'
require 'open-uri'
# from news.google.cn
urlhot = "http://news.google.cn/news?pz=1&ned=ccn&hl=zh-CN&topic=b&output=rss"
urlfinance = "http://news.google.cn/news?pz=1&ned=ccn&hl=zh-CN&topic=ecn&output=rss"
urlfund = "http://news.google.cn/news?pz=1&ned=ccn&hl=zh-CN&topic=stc&output=rss"
urlfinancing = "http://news.google.cn/news?pz=1&ned=ccn&hl=zh-CN&topic=pf&output=rss"
case param
when 'hot'
RSS::Parser.parse(open(urlhot).read, false)
when 'finance'
RSS::Parser.parse(open(urlfinance).read, false)
when 'fund'
RSS::Parser.parse(open(urlfund).read, false)
when 'financing'
RSS::Parser.parse(open(urlfinancing).read, false)
end
end

def feed_link(param)
require 'cgi'
CGI.unescape(param.slice(/(http%).*(&)/)).gsub(/&/,'') if param # 把十六进制\?例如http%3A2F之类的{化ؓ 字符
end

def feed_title(param)
param.slice(/.*(-)/).gsub(/-/,"") if param #截取需要的title
end

def feed_from(param)
param.slice(/( - ).*/).from(2) if param # 截取需要的部分
end


partial: _feednews.erb.html
<div class="slides">
<div><%= render :partial => 'shared/feednews_item',:collection => feed_collection("hot").items %></div>
<div><%= render :partial => 'shared/feednews_item',:collection => feed_collection('finance').items %></div>
<div><%= render :partial => 'shared/feednews_item',:collection => feed_collection('fund').items %></div>
<div><%= render :partial => 'shared/feednews_item',:collection => feed_collection('financing').items %></div>
</div>

Mq里参考了 jquery的loopslider 插gQ灯片Q?加蝲昄的只是第一个div部分Q可以参考:
http://github.com/nathansearles/loopedSlider/tree/master

partial: _feednews_item.html.erb
<ul>
<% unless feednews_item.nil? %>
<li class="news"><a href="<%= feed_link(feednews_item.link) %>" target="_blank"><%= feed_title(feednews_item.title) %></a>

<span class="grey small"><span> <%= feed_from(feednews_item.title) %></span>&nbsp;&mdash;&nbsp;<span><%= feednews_item.pubDate.to_date %></span></span></li>
<% end %>
</ul>

okay....已经成功了,我实现的截图Q?br />

ref:
http://www.rubycentral.com/book/ref_c_string.html
http://www.javaeye.com/topic/60620
http://www.troubleshooters.com/codecorn/ruby/basictutorial.htm#_Regular_Expressions
http://paranimage.com/15-jquery-slideshow-plugins/#respond
http://hi.baidu.com/todayz/blog/item/83c1b219d966fd4142a9ad5f.html
http://dennis-zane.javaeye.com/blog/57538
http://sporkmonger.com/projects/feedtools/
http://rubyrss.com/
http://rubyrss.com/
http://www.superwick.com/archives/2007/06/09/rss-feed-parsing-in-ruby-on-rails/
http://www.ruby-forum.com/topic/144447




fl1429 2009-08-18 10:45 发表评论
]]>
Rails render partial collectionhttp://www.aygfsteel.com/fl1429/archive/2009/08/17/291533.htmlfl1429fl1429Mon, 17 Aug 2009 10:21:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/08/17/291533.htmlhttp://www.aygfsteel.com/fl1429/comments/291533.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/08/17/291533.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/291533.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/291533.html
Rails ?partial ?传?collectionQ默认的循环变量 ?partial的名字(U定Q。或者你x变变量名的话Q可以?:as 参数声明一个变量。。。不能用惯性思想 for ...........in........{?br />
例如Q?br /> 之前错误的写法:
partial : _feednews.html.erb
 <%= render :partial => 'shared/feednews_item',:collection => @feeds = feed_collection("hot").items %>

partial : _feednews_item.html.erb
  <ul>
<% for feed in @feeds.items %>
  <li  class="news"><a  href="<%= feed_link(feed.link) %>" target="_blank"><%=  feed_title(feed.title) %></a><br />
  <span class="grey small"><span> <%= feed_from(feed.title) %></span>&nbsp;&mdash;&nbsp;<span><%= feed.pubDate.to_date %></span></span></li>
<% end %>
 </ul>

上面W二?partial 昄的结?for 循环 输出 后的 加上 rails U定的partial collection 循环输出了。。结果重复。。做的过E中q遇?partial collection empty q个异常

原因? feed_collection("hot").items  q回的结果不是一?collection..

正确的写法:
partial : _feednews.html.erb
 <div><%= render :partial => 'shared/feednews_item',:collection => feed_collection("hot").items %></div>

partial : _feednews_item.html.erb
<ul>
  <% unless feednews_item.nil? %>
    <li  class="news"><a  href="<%= feed_link(feednews_item.link) %>" target="_blank"><%=  feed_title(feednews_item.title) %></a><br />
    <span class="grey small"><span> <%= feed_from(feednews_item.title) %></span>&nbsp;&mdash;&nbsp;<span><%= feednews_item.pubDate.to_date %></span></span></li>
  <% end %>
</ul>

从上面的prtial中可以看?变量 是feednews_item 也就是partial的名?br />  

ȝQ一句话Q如?你在 partial ?传了 collection ,那么 q partial的名?作变量输出, 不需?q代Q?如果 没有 传collection Q?那么 需?q代输出Q?br />





fl1429 2009-08-17 18:21 发表评论
]]>
Rails 多态关联(:polymorphic => trueQ?/title><link>http://www.aygfsteel.com/fl1429/archive/2009/08/12/290864.html</link><dc:creator>fl1429</dc:creator><author>fl1429</author><pubDate>Wed, 12 Aug 2009 09:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/fl1429/archive/2009/08/12/290864.html</guid><wfw:comment>http://www.aygfsteel.com/fl1429/comments/290864.html</wfw:comment><comments>http://www.aygfsteel.com/fl1429/archive/2009/08/12/290864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fl1429/comments/commentRss/290864.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fl1429/services/trackbacks/290864.html</trackback:ping><description><![CDATA[多态关?也叫虚拟兌Q?其实 表是不存在的。。。不?:through => Qconnections 那connections的表是存在的Q也可以不存在的Qconnections是一个关联模?br /> <br /> 有这样一个需求,需要用?虚拟兌<br /> <br /> 在SNS中,例如xiaoneiQdouban{等都有 最q好友更新的内容昄Q那么这?一般是在一?表中Q例?叫activities 表,更新有很多种 Q例?修改头像Q发表日志,建立了好友关p,发表评论{等Q。。说白了是 一个表 兌?多个表,那就得用?虚拟 兌了。?br /> <br /> 表结构:<br /> <img style="max-width: 800px;" src="http://www.aygfsteel.com/images/blogjava_net/fl1429/snapshot16.png" alt="" /><br /> <br /> 原理Q?br /> 上面有三个表Qactivities表(记录更新了那些操作,最重要的两个字D|item_id,和item_type,item_id是对应到兌表的主键idQitem_type是对应到兌表的表对象名例如comments表就是CommentQ?Posts?Q用户发表文字的表,例如有发表blog的blog_id,发表论坛 topic?topic_id,l用La的client_info_id,body是发表的内容Q,<br /> comments表(评论表,body是评论内容,当然评论也好好多U评论,q个表里也需要关联许多表Q从comments表的字段中也可以看到用了虚拟兌Q?br /> <br /> 用法Q?br /> model:<br /> <br /> activity<br /> class Activity < ActiveRecord::Base<br />   ................<br />   belongs_to :item, :polymorphic => true<br /> ..........................<br /> end<br /> <br /> Comment<br /> ..................<br /> has_many :activities, :foreign_key => "item_id" , :dependent => :destroy<br /> ..................<br /> <br /> 加上 :dependent => :destroy 是当q条评论删除Ӟactivities 表里的记录同时被删除<br /> <br /> <br /> 或者:<br /> <br /> has_many :activities, :as => :item , :dependent => :destroy <br /> <br /> <br /> 那么 Post 模型 同理可得。。。?<br /> <br /> 因ؓ上面?:item Q?所?activities 表里?item_id Q?nbsp; item_type 是约定俗成的。。。。。。。。?br /> <br /> 取数?br />  activity.item.body<br /> activity 是activities表中的记录对?br /> <br /> refQ?br /> http://guides.rails.info/association_basics.html<br /> http://hideto.javaeye.com/blog/76709<br /> http://hi.baidu.com/rainchen/blog/item/fc3a94eeb31ad62b2df53412.html<br /> http://iceskysl.1sters.com/?action=show&id=25<br /> http://rubycnrails.cn/articles/23 Q了?dependent=>:destroyQ?br /> <br /> <br /> <div id="wmqeeuq" class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=ddadb8c0-22bc-87aa-9319-f80b657781cf" /></div> <img src ="http://www.aygfsteel.com/fl1429/aggbug/290864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fl1429/" target="_blank">fl1429</a> 2009-08-12 17:06 <a href="http://www.aygfsteel.com/fl1429/archive/2009/08/12/290864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails link_to_remote delete recordhttp://www.aygfsteel.com/fl1429/archive/2009/08/11/290689.htmlfl1429fl1429Tue, 11 Aug 2009 09:14:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/08/11/290689.htmlhttp://www.aygfsteel.com/fl1429/comments/290689.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/08/11/290689.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/290689.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/290689.html使用ҎQ?br />
view:
<div   id="activity_<%=activity.id%>" class="blog_item clearfix">
..........
  <%= link_to_remote image_tag("/images/icons/network/close.gif"),
    :url  => {:controller=>'activities', :action =>'destroy',:id=>activity.id },
    :method => :delete,
    :confirm => %(认删除更新?)
  %>
</div>

controller:

 def destroy
    @activity.destroy
  #  flash[:notice] = "状态已删除"
    respond_to do |format|
      format.html { redirect_to :back }
      format.xml  { head :ok }
      format.js do
        render :update do |page|
          page.remove "activity_#{@activity.id}"
        end
      end
    end
  end

refQ?br />http://scottmotte.com/archives/62.html



fl1429 2009-08-11 17:14 发表评论
]]>
rails pagination like twitter more buttonhttp://www.aygfsteel.com/fl1429/archive/2009/08/10/290573.htmlfl1429fl1429Mon, 10 Aug 2009 09:29:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/08/10/290573.htmlhttp://www.aygfsteel.com/fl1429/comments/290573.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/08/10/290573.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/290573.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/290573.html
我们知道rails中分一般是will_paginate插g Q?如果惛_现twitter那样的more的方式,那就得用到will_paginate插g ?ajax的操作了Q核心思想是在div id 的bottom?insert_html , 比原来的直接 will_paginate E微复杂一点,|上有很多是像greader那样的滚屏自动加载的Ҏ google一?endless pagination 有很多



效果Q?br />

源码下蝲Q?br /> http://www.uushare.com/user/fl1429/file/1882575

下蝲后用方法:
1Q配|连接mysql数据库的ymlQƈ在数据库中徏立相信的db
2Q进入工E?rake db:migrate
3,在数据库中添加一些数?br /> 4Qokay 启动试

另附滚屏加蝲的代码下载,配置使用Ҏ ?上面cM
http://www.uushare.com/user/fl1429/file/1882506

ref:
http://net.tutsplus.com/tutorials/javascript-ajax/create-a-twitter-like-load-more-widget/
http://d.hatena.ne.jp/hichiriki/20090415/1239751466
http://github.com/jney/jquery.pageless/blob/90213b1168ef23718e7dd8989e593f7e3a2d5c6d/README.textile
http://www.railsillustrated.com/screencast-endless-page.html






fl1429 2009-08-10 17:29 发表评论
]]>
rails 没网l?查看apihttp://www.aygfsteel.com/fl1429/archive/2009/08/06/290061.htmlfl1429fl1429Thu, 06 Aug 2009 03:01:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/08/06/290061.htmlhttp://www.aygfsteel.com/fl1429/comments/290061.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/08/06/290061.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/290061.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/290061.html
localhost:8808 览。。。?br />
唯一的好处是可以查看电脑里安装所有的gem rdoc



fl1429 2009-08-06 11:01 发表评论
]]>
ruby merge a hashhttp://www.aygfsteel.com/fl1429/archive/2009/07/28/288761.htmlfl1429fl1429Tue, 28 Jul 2009 08:11:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/07/28/288761.htmlhttp://www.aygfsteel.com/fl1429/comments/288761.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/07/28/288761.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/288761.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/288761.htmlruby能够使用mergeQ别名updateQ方法,来合q两个hashQ如果他们中的健有相同的话,一个将会被删除

demo:
delaware = { 1 => "Two", 2 => "New Value", 3 => "New Three" , 8 => "Five" }

myhash = { 1 => "One", 2 => "Two", 3 => "Three", 4 => "Four", 5 => "Five" }

puts delaware

puts myhash

puts delaware.merge(myhash)

puts myhash.merge(delaware)

l果Q?br />1Two2New Value8Five3New Three
5Five1One2Two3Three4Four
5Five1One2Two8Five3Three4Four
5Five1Two2New Value8Five3New Three4Four

refQ?br />http://ruby-doc.org/core/classes/Hash.html#M002880
http://www.java2s.com/Code/Ruby/Hash/Mergetwohashes.htm
http://simohayha.javaeye.com/blog/151947







fl1429 2009-07-28 16:11 发表评论
]]>
windows xp install RMagickhttp://www.aygfsteel.com/fl1429/archive/2009/07/27/288521.htmlfl1429fl1429Mon, 27 Jul 2009 02:32:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/07/27/288521.htmlhttp://www.aygfsteel.com/fl1429/comments/288521.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/07/27/288521.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/288521.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/288521.html环境: ruby 1.8.6 + rails 2.1.0

下蝲地址:

http://d.namipan.com/d/RMagick-2.9.0-ImageMagick-6.4.8-6-Q8.zip/5fda50e95ba401260eedddbaec51eef10a1908a098766901

or

http://www.dbank.com/download.action?k=8004b8cb15a44b28ab630551eb7658df

or

http://www.uushare.com/filedownload?user=fl1429&id=2018924

下蝲?安装一个exe文g和一个gem文g

one : 点击exe安装

two:

gem install rmagick.gem

three:

不行的話重新起下電腦Q嘿嘿~

ref:

http://www.opensourceconnections.com/2007/10/06/installing-rmagick-on-windows-using-ruby-186/



fl1429 2009-07-27 10:32 发表评论
]]>
windows install ruby1.8.6+rails2.1.0http://www.aygfsteel.com/fl1429/archive/2009/07/27/288512.htmlfl1429fl1429Mon, 27 Jul 2009 01:57:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/07/27/288512.htmlhttp://www.aygfsteel.com/fl1429/comments/288512.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/07/27/288512.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/288512.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/288512.htmlone:

从ruby-lang下蝲ruby1.8.6的installer,点击安装

two:

gem install rails -v=2.1.0

判断成功:

ruby –v

gem –v

rails -v



fl1429 2009-07-27 09:57 发表评论
]]>
ruby is_a?http://www.aygfsteel.com/fl1429/archive/2009/07/14/286665.htmlfl1429fl1429Tue, 14 Jul 2009 03:53:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/07/14/286665.htmlhttp://www.aygfsteel.com/fl1429/comments/286665.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/07/14/286665.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/286665.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/286665.html
class A 
end

t = :name

if t.is_a?(Symbol) # true
  puts 't true'
end

if A.is_a?(Symbol) # false
  puts 'A true'
end

if 12.is_a?(Integer) #true
  puts '12'
end


ref:
http://www.ruby-doc.org/core/classes/Symbol.html
http://www.ruby-doc.org/docs/Tutorial/part_01/objects.html



fl1429 2009-07-14 11:53 发表评论
]]>
ruby uncompress csshttp://www.aygfsteel.com/fl1429/archive/2009/06/30/284814.htmlfl1429fl1429Tue, 30 Jun 2009 10:27:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/30/284814.htmlhttp://www.aygfsteel.com/fl1429/comments/284814.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/30/284814.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/284814.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/284814.html
$ cat somefile.css | awk '{gsub(/{|}|;/,"&\n"); print}' >> uncompressed.css

后来个h用ruby写了个{化的代码Q?br />
输出到控制台Q?br />path = '/home/feng/compress.css'
string = File.read(path)
puts string.gsub!(/;/,";\n").gsub!(/\}/,"\n}\n").gsub!(/\{/,"\n{\n")


输出到文Ӟ
path = '/home/feng/compress.css'
file = File.new(path, "r")
path1 = '/home/feng/uncompress.css'
File.open(path1, "wb") do   |f|
  f.write(file.readline().gsub!(/;/,";\n").gsub!(/\}/,"\n}\n").gsub!(/\{/,"\n{\n"))
end


refQ?br />http://www.commandlinefu.com/commands/view/2339/uncompress-a-css-file




fl1429 2009-06-30 18:27 发表评论
]]>
ubuntu install rorhttp://www.aygfsteel.com/fl1429/archive/2009/06/24/283989.htmlfl1429fl1429Wed, 24 Jun 2009 10:18:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/24/283989.htmlhttp://www.aygfsteel.com/fl1429/comments/283989.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/24/283989.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283989.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283989.html

环境Q?/font>ubuntu 8.10 en version

安装ror版本 Q?ruby 1.8.7 + rails 2.1.0


1,安装ruby


sudo apt-get ruby

安装l束?可以?/font>ruby -v 查看安装l果

feng@feng:~$ ruby -v


ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]



2Q安?/font>rubygems

sudo apt-get rubygems

安装l束后可以用 gem -v 查看安装l果

feng@feng:~$ gem -v


1.3.4



3Q安装完rubygems后可能不是最新版Q需要更C下,更新的方?/font>

$ sudo gem install rubygems-update

4Q安?/font>rails

sudo gem install -v=2.1.0 rails

安装l束后,可以?rails -v 查看下安装结?/font>

feng@feng:~$ rails -v


Rails 2.1.0



刚开始我用的?/font>sudo gem install rails,安装的是最新版Q但是和ruby1.8.7不协调,最后又怺railsQ重新装?/font>rails 2.1.0Q卸载方式如下:

gem list 列出所?/font>gem包,


feng@feng:~$ gem list




*** LOCAL GEMS ***




actionmailer (2.1.0)


actionpack (2.1.0)


activerecord (2.1.0)


activeresource (2.1.0)


activesupport (2.1.0)


calendar_date_select (1.15)


rails (2.1.0)


rake (0.8.7)


rmagick (2.9.2)



然后逐一删除

sudo gem uninstall rails



sudo gem uninstall actionmailer

?/font>

?/font>

?/font>

refQ?/font>

http://hi.baidu.com/pepsichan/blog/item/dc1e030a58c9021795ca6bde.html


http://hi.baidu.com/pepsichan/blog/item/8cf53dec6957432f62d09f1c.html






fl1429 2009-06-24 18:18 发表评论
]]>
rmagick resize imagehttp://www.aygfsteel.com/fl1429/archive/2009/06/23/283797.htmlfl1429fl1429Tue, 23 Jun 2009 10:24:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/23/283797.htmlhttp://www.aygfsteel.com/fl1429/comments/283797.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/23/283797.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283797.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283797.html 最q在用ruby的rmagick?br /> http://www.imagemagick.org/RMagick/doc/image3.html#resize_to_fit
改变囄的大,使用了resize, resize_to_fill,resize_to_fit 原来api提供的方法,可以是不成功,一直提C?undefined method resize_to_fit{方法找不到,|上有n多h遇到Q可以我折腾了一个上午还是没搞定Q最后准备另辟蹊径的Q但是在q里发现了方法,另外一个函数处理的Q?br /> http://www.goodbyehelicopter.com/2007/07/25/rails-is-bailing-out-in-rmagick/#comment-1594
那个里面的图片看h很想无锡?灵山大佛
原来的那个demo?AspectGeometry用的?Q?Q最后resize后的囄width:heightL4Q?Q不知道Z么,最后我把参数换?
Magick::AspectGeometry 
ok?br />
我的demoQ?br />
# RMagick Test
require 'rubygems'
require 
'RMagick'
include Magick

image_to_alter 
= 'public/upload/52/1.jpg'
img 
= Image.read(image_to_alter)[0]
thumbnail_height 
= 100
thumbnail_width 
= 100
geometry_obj 
= Geometry.new(thumbnail_width, thumbnail_height, nil, nil, Magick::AspectGeometry)
chg_geom_img 
= img.change_geometry(geometry_obj) {|cols, rows, image| image.resize(cols, rows)}
chg_geom_img.write(
"public/upload/52/thumb1.jpg")


apiQ?br /> http://www.simplesystems.org/RMagick/doc/struct.html#Geometry






fl1429 2009-06-23 18:24 发表评论
]]>
rails 变相的预览图?/title><link>http://www.aygfsteel.com/fl1429/archive/2009/06/22/283629.html</link><dc:creator>fl1429</dc:creator><author>fl1429</author><pubDate>Mon, 22 Jun 2009 10:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/fl1429/archive/2009/06/22/283629.html</guid><wfw:comment>http://www.aygfsteel.com/fl1429/comments/283629.html</wfw:comment><comments>http://www.aygfsteel.com/fl1429/archive/2009/06/22/283629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fl1429/comments/commentRss/283629.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fl1429/services/trackbacks/283629.html</trackback:ping><description><![CDATA[最q在做图片的上传Q但是客户可以在上传之前对自q囄q行剪切Q本惌囄不上传到server上就可以剪切的,但是最后在firefox上遇CȝQfirefox中不可以得到input typeQfile的全路径Q只可以得到文g名,很让人郁闗。。google了下Q网上有好多人遇Cq个问题Q说是firefox从安全考虑的,不管它了。。估计肯定有解决办法Q找C一个别人实现的。。但是预览功能都是用js输出的,我要用image 标签输出Q改q个js也不单:<br /> http://hedgerwow.appspot.com/image-upload-preview/demo.html<br /> 我也没有l折腾,最后参照xiaonei的图片上?剪切功能办法Q实CQ其实就是先把图片上传到server上的。。?br /> xiaonei |址Qhttp://head.upload.xiaonei.com/Upload.do<br /> 没有xiaoneiL。。看我的一张截囑֐。。其实也是多了一个上传button|了<br /> <br /> <img style="max-width: 800px;" src="http://www.aygfsteel.com/images/blogjava_net/fl1429/snapshot2.png" alt="" /><br /> <br /> 我的效果Q?br /> <img style="max-width: 800px;" src="http://www.aygfsteel.com/images/blogjava_net/fl1429/snapshot3.png" alt="" /><br /> 核心代码Q?br /> rhtmlQ?br /> <font color="#3333ff">  <form name="uploadform" id="uploadform" action="crop" method="post" enctype="multipart/form-data"><br />  <input id="uploadimage" type="file" name="uploadimage"/><br /> <input type="submit" class="button" name="upload" value="上传" id="upload" /><br /> </form></font><br /> <br /> controller:<br /> <font color="#3333ff">    if params[:upload]<br />       image = params[:uploadimage]<br />       name = image.original_filename<br />       File.makedirs("public/upload/tmp")<br />       directory = "public/upload/tmp"<br />       path = File.join(directory,name)   <br />       File.open(path, "wb") { |f| f.write(image.read) } # important<br />       @src = path[6..-1] # get image src<br />     end<br /> </font><br /> source download:<br /> http://www.uushare.com/user/fl1429/file/1842295   (ruby1.8.6 + rails 2.1.0)<br /> <img src ="http://www.aygfsteel.com/fl1429/aggbug/283629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fl1429/" target="_blank">fl1429</a> 2009-06-22 18:11 <a href="http://www.aygfsteel.com/fl1429/archive/2009/06/22/283629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ruby delete all files from a diretoryhttp://www.aygfsteel.com/fl1429/archive/2009/06/22/283623.htmlfl1429fl1429Mon, 22 Jun 2009 09:48:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/22/283623.htmlhttp://www.aygfsteel.com/fl1429/comments/283623.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/22/283623.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283623.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283623.html
require 'fileutils'

def delete(filename)
  Dir["#{File.dirname(filename)}/*"].each do |file|
    next if File.basename(file) == File.basename(filename)
    FileUtils.rm_rf file,:noop => true, :verbose => true
  end
end

files = 'public/upload/48/*'
delete(files)


注意如果需要成功运行的话,把红色部分去掉,U色部分表示 不执行,只是输出到控制台

refQ?br />http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/7fe8d78ee4e464ee



fl1429 2009-06-22 17:48 发表评论
]]>
rails file upload to filesystemhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283283.htmlfl1429fl1429Fri, 19 Jun 2009 11:19:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283283.htmlhttp://www.aygfsteel.com/fl1429/comments/283283.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283283.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283283.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283283.html
rhtmlQ?br />    <form name="photo" enctype="multipart/form-data" action="/upload/path" method="post">
    Photo <input type="file" name="image"  id="image" size="30"  />
    <input type="submit" name="upload" value="Upload"  class="button" />
    </form>

controller:
path = 'public/data'
File.open(path, "wb") { |f| f.write(params[:image].read) }

that's all,单吧。。注意在用Filecȝ一些方法时,需要require 'ftools'

ref:
http://www.tutorialspoint.com/ruby-on-rails-2.1/rails-file-uploading.htm



fl1429 2009-06-19 19:19 发表评论
]]>
ruby crop an image by rmagickhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283282.htmlfl1429fl1429Fri, 19 Jun 2009 11:09:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283282.htmlhttp://www.aygfsteel.com/fl1429/comments/283282.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283282.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283282.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283282.html前提是你ruby里要先装了rmagickcdQ下面demo的四?00分别是x坐标Qy坐标QwidthQheight
囄处理更多的功能,一定要看rmagic的api
demo:test.rb

  require 'rubygems'
  require 'RMagick'
  include Magick
    image=Image.read("/home/feng/Img/1.jpg").first
    face=image.crop!(100,100,100,100)
    face.write("/home/feng/Img/crop.jpg")

ref:
http://www.genlinux.org/2009/03/ruby-program-to-crop-image-using.html



fl1429 2009-06-19 19:09 发表评论
]]>
ruby random array elementhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283279.htmlfl1429fl1429Fri, 19 Jun 2009 11:00:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283279.htmlhttp://www.aygfsteel.com/fl1429/comments/283279.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283279.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283279.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283279.htmldemo:

a = ['ruby','java','php','flex']

for i in a
  puts i
end

puts a[rand(a.size)]


ref:
http://nathanpowell.org/blog/archives/585



fl1429 2009-06-19 19:00 发表评论
]]>ruby get all files in a directoryhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283277.htmlfl1429fl1429Fri, 19 Jun 2009 10:56:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283277.htmlhttp://www.aygfsteel.com/fl1429/comments/283277.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283277.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283277.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283277.html
basedir = "public/upload/48"
contains = Dir.new(basedir).entries # return array
puts contains[1]


ref:
http://www.wellho.net/resources/ex.php4?item=r106/afid.rb



fl1429 2009-06-19 18:56 发表评论
]]>
Rails no such file to load -- rmagick (LoadError)http://www.aygfsteel.com/fl1429/archive/2009/06/19/283180.htmlfl1429fl1429Fri, 19 Jun 2009 02:30:00 GMThttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283180.htmlhttp://www.aygfsteel.com/fl1429/comments/283180.htmlhttp://www.aygfsteel.com/fl1429/archive/2009/06/19/283180.html#Feedback0http://www.aygfsteel.com/fl1429/comments/commentRss/283180.htmlhttp://www.aygfsteel.com/fl1429/services/trackbacks/283180.html
跑的源码Q切割图?br />require 'rubygems'
require 'RMagick'
include Magick
image=Image.read("/home/feng/Img/1.jpg").first
face=image.crop!(270,55,194,194)
face.write("/home/feng/Img/crop.jpg")


但是q是报错
no such file to load -- rmagick (LoadError)

。。查了下Q?br />
原来是在linux?RMagick 必须严格늅大小写,而在windows中区分的不是明显
refQ?br />http://yingxiong.javaeye.com/blog/314898



fl1429 2009-06-19 10:30 发表评论
]]>
վ֩ģ壺 | | | | Ϫ| | ֦| | | ƽң| ǡ| | | | | | ܱ| Ȩ| Ĭ| | DZ| ϻ| ػ| | ʩ| ˫| ɳ| | | | ͩ®| ƽ| | | | | | | | | ʯ|