vincent's profilevincent的个人空间BlogLists Tools Help

Blog


    3/10/2007

    Post by Diigo 03/09/2007

    Ruby on Rails Manual ActiveRecord::Base-inheritance_column Annotated

    Defines the column name for use with single table inheritance — can be set in subclasses like so: self.inheritance_column = "type_id"
    class User < ActiveRecord::Basedef 
    self.inheritance_column() 'role' end
     def
    admin?
       false

     end

    end

    class Admin < User
     def
    admin?
      true

     end

    end
    database table would look like this:

    user
    - id
    - username
    - role = User || Admin
    • 研究rforum源码的时候碰到,初始化user对象时,自动根据role识别初始化的对象型别(Admin or User),原来是rails中表继承的应用,模型层维护好继承关系,数据模型底层,必须设置一个type(默认字段)字段以记录不同对象,也可以如它所说,self.inheritance_column = "column" 来设置这个字段 - post by vincent

      3/6/2007

      Diigo的新Feature

      继Diigo V2发布以来,Diigo又相继发布了一些小的Feature但是特别实用,如,preview, about等
      我个人特别喜欢preview这个feature:
      每个bookmark item后面有个preview很有创意。节省了浏览原网页,跳转的时间,直接在diigo site上浏览在做决定,而且似乎还可以直接在preview中highlight, that cool~

      9/10/2006

      YUI

          以前很少接触客户端的实现,现在强迫自己学习,从最原始的html,到酷酷的CSS,功能强大的JS, 最后一发不可收拾的看到了AJAX的威力,即节省了服务器的资源,又给客户最好的体验.
          YUI是Yahoo的一个开源UI library (http://developer.yahoo.com/yui/),与我之前接触的 (http://script.aculo.us/)比较 ,没有最好,只有更好。
          看看人家已经在”玩“客户端技术了,路漫漫,不多说了,做事了

      9/9/2006

      ROR中的Get与Post请求

          Get与Post请求其实不仅仅是ROR中有,所有web应用,使用http协议,都会有这两种类型的请求。直到我接触到Ajax才真正对这两个请求的区别有一定认识了。
          1) Get请求把表单信息封装在header里由客户端发送给服务器,因此常常可以看到caojunvincent.spaces.live.com/
      ?owner=KKJH:er&colum=asdfweq@#C
          2) Post请求则把表单信息封装在Body里,在URL里就看不到难看的问号和被code的信息本身了。

          这里我并不仅仅是对这两个请求做个简单的区别,在实际的ROR应用中,仍然由许多问题需要总结思考:
          1)ROR中,客户端请求一个action时,会默认指定到与之同名的模板上,如请求localhost/controller/action_1,则默认会渲染action_1.rhtml并返回给客户端,这是最简单的情况
          2)当所请求的action_1会调用其他的action时,代码会这么写redirect_to(:action => 'action_2'), 我以前一定是对这个方法太熟视无睹,以至于都没有多思考什么,实际上redirect_to() 方法请求到action_2的时候,就是发送了一个Get请求
          如果 情况稍微复杂一点:
          3)action_2中有表单请求(默认情况是Post),而action_1对action_2又有Get请求,如何区分?我的做法是
              def action_2
                  if request.get?
                     
      #do get request stuff here
                      render(:action => 'action_2')
                  else
                      #do post request stuff here
                  end
              end
          4)action_1中redirect_to(:action => 'action_2') 后的请求被action_2 的 if request.get? 子句处理了,而action_2本身的Post请求则被else子句处理了。
          可能目前为止我的总结还是太感性,等到情况碰得再复杂一点,我应该有更深得理解

      ActionView学习笔记

          ROR即Ruby on Rails,我刚入门,用它搭建了一个简单的BookStore ,基本对ROR有了一个感性认识。
          Web应用常常会在不同的页面上显示同一组信,比如,Blog应用会在主页显示文展内容,在Archive里也
      会显示,这通常意味着需要在不同的页面模板之间复制同样的代码片断, Rails里怎么处理呢?它提供了
      partial page template机制来消除这种重复,可以把局部模板看作某种子程序,你可以在别的模板里调
      用它,并且可以把对象作为参数传递给它以便渲染,当局部模板完成渲染以后,控制权就会被还给发起
      调用的模板,这点很好理解。
          局部模板让我们可以在多个视图之间共享视图代码片断,但如果我们不仅要共享视图,还要共享视图背
      后的一些逻辑,又该怎么办呢?:组件(component)允许我们在视图或者action中调用别的action,执
      行后者的逻辑,渲染其结果,并将渲染得到的HTML片断插入当前 action的输出之中。
          以上是我关于ActionView 布局与组件的一点学习体会