隨筆-167  評論-65  文章-0  trackbacks-0

          rails ActiveRecord 操作數(shù)據(jù)庫(CRUD)


          Create:

          添加記錄
          (1) new 和 save
          user = User.new
          user.name = value1
          user.password = value2
          user.save


          (2) create 下面增加了兩條記錄
          User.create([{:name=>value1,:password=>value2},{:name=>value3,:password=>value4}])


          使用 塊  作為構(gòu)造參數(shù) 添加記錄
          User.new do |f|
          f.name = value1
          f.password = value2
          f.save
          end


          使用 Hash對象 作為構(gòu)造參數(shù) 添加記錄
          user=User.new(
          :name=>value1,
          :password=>value2
          )
          user.save

           

          Delete:

          刪除記錄
          message = Message.find(params[:id]) #找到該message對象,ruby的變量是隨時可以變的,而且可以直接作為對象變量
          message.destroy

          Update:


          更新記錄
          @message = Message.update(params[:id],:detail=>params[:message][:detail])
          其中params[:id] 取得的是主鍵id,由表單提交時的 :id參數(shù)傳過來

           

          ClientInfo.update_all("password ="+"'"+password.to_s+"'","email= "+"'"+email.to_s+"'");


                  update_all(" status = '1' ",
                  "client_info_id = #{id} and status = 0"
                  )


           find(:first,:conditions=>["client_id=? and name='投資組合'",value1]).update_attributes(
                  :status=>value2)


          Order.find(12).update_attributes(:name => "Barney", :email => "barney@bedrock.com")

          根據(jù)條件update

          ref:

          http://dev.rubyonrails.org/ticket/5961



          Search:


          根據(jù)一個字段指定的名稱查詢
          mymessage = Message.find(:all,:conditions=>["user_id=?",session[:user_id]])
          查詢messages表中user_id為session[:user_id]值的對象

           


          根據(jù)主鍵的id查詢
          user = User.find(1)
          查詢users表中主鍵id為1的User對象
          user.name 即可得到該對象的name值
          user.password 即可得到該對象的password值


          查詢兩個字段
          User.find(:all,:conditions=>["name=? and password=?",name,password])

           


          查詢?nèi)坑涗?br /> User.find(:all) 或者 User.all

          取得某一對象name字段值
          User.find(params[:id]).name


          Select :

          根據(jù) id 查詢 數(shù)據(jù)記錄集

                vo = Post.find :all , :conditions => ["type = 'BlogPost' "]
                vo2 = Comment.find :all , :conditions => ["commentable_type = 'Post' "]     
                Activity.find(:all,
               :conditions => ["activities.item_id in (?) and item_type = 'Post' or activities.item_id in (?) and item_type = 'Comment' ",vo.map(&:id).uniq , vo2.map(&:id).uniq],
                  :order => 'activities.created_at DESC',
                  :limit => GLOBAL_FEED_SIZE
                )

          上述查詢結(jié)果為 : select 出 activities表的item_type = Post 并且 item_id 在vo記錄集 中 加上 item_type = Comment 并且 item_id 在vo2記錄集 中,

          ref:

          http://www.spacevatican.org/2008/4/29/include-and-conditions


           

           

           


          待續(xù).............


          write by feng
          posted on 2009-03-20 19:03 fl1429 閱讀(1356) 評論(0)  編輯  收藏 所屬分類: Rails
          已訪問數(shù):
          free counters
          主站蜘蛛池模板: 抚顺县| 宁河县| 隆德县| 来宾市| 湘阴县| 屏边| 江源县| 上栗县| 祁阳县| 北碚区| 昌吉市| 新宾| 长阳| 华阴市| 海南省| 兴山县| 朝阳市| 尚义县| 岳普湖县| 抚远县| 澳门| 六安市| 潼南县| 双流县| 集贤县| 库车县| 洞口县| 根河市| 瑞昌市| 伊宁市| 靖宇县| 明光市| 同仁县| 台中县| 延津县| 茶陵县| 会泽县| 资中县| 都匀市| 大新县| 阳朔县|