<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dust Of Dream

    知識(shí)真的是一個(gè)圓么?

    Agile Web Development with Rails 3nd Edition 閱讀筆記

    Agile Web Development with Rails 3nd Edition 閱讀筆記
    1.session 使用
    1)如何使用數(shù)據(jù)庫保存session,以增加session的安全性?
      > rake db:sessions:create 創(chuàng)建Session相關(guān)的表結(jié)構(gòu)
      > rake db:migrate 在數(shù)據(jù)庫中創(chuàng)建表
      修改 environment.rb 中使用database來代替默認(rèn)采用基于cookie的存儲(chǔ)方式.
      # Use the database for sessions instead of the cookie-based default,
    # which shouldn't be used to store highly confidential information
    # (create the session table with 'rake db:sessions:create')
    config.action_controller.session_store = :active_record_store
    然后在基類application.rb中加入
    session :session_key => '_session_id' #(存入cookie的ID)
    # See ActionController::RequestForgeryProtection for details
    # Uncomment the :secret if you're not using the cookie session store
    protect_from_forgery :secret => '8c3e099237e6366fd2f5366e9c430e79' #(加密字符串,換個(gè)自己的吧)
    簡單一個(gè)session應(yīng)用實(shí)例(找下session是否存在cart,不存在就創(chuàng)建一個(gè)新的扔進(jìn)去)
    def find_cart
    unless session[:cart]
    session[:cart] = Cart.new 
    end
    session[:cart]
    end
    上面亂七八糟的代碼可以簡寫成 session[:cart] ||= Cart.new
    2.使用<%= render(:partial => "cart_item" , :collection => @cart.items) %>可以引入一個(gè)control,其中對(duì)應(yīng)的control的文件名為"_cart_item.html.erb,在片段中引用的變量為"cart_item".在書中的實(shí)例如下:
    depot/app/views/store/add_to_cart.html.erb
    [CODE]
    <div class="cart-title">Your Cart</div>
    <table>
    <%= render(:partial => "cart_item" , :collection => @cart.items) %>
    <tr class="total-line">
    <td colspan="2">Total</td>
    <td class="total-cell"><%= number_to_currency(@cart.total_price) %></td>
    </tr>
    </table>
    <%= button_to "Empty cart" , :action => :empty_cart %>
    [CODE]
    [CODE]
    depot/app/views/store/_cart_item.html.erb
    <tr>
    <td><%= cart_item.quantity %>&times;</td>
    <td><%=h cart_item.title %></td>
    <td class="item-price"><%= number_to_currency(cart_item.price) %></td>
    </tr>
    [CODE]
    上面使用的是一個(gè)循環(huán)調(diào)用某個(gè)control,可以只傳入一個(gè)Object
    <%= render(:partial => "cart" , :object => @cart) %>
    3.如何使用Ajax
      先使用<%= javascript_include_tag :defaults %> 引入默認(rèn)的Javascript
      然后使用
      <% form_remote_tag :url => { :action => :add_to_cart, :id => product } do %>
    <%= submit_tag "Add to Cart" %>
    <% end %>
    使用ajax觸發(fā)動(dòng)作.
    一個(gè)簡單的Helper類里面定義方法的使用:
    def hidden_div_if(condition, attributes = {}, &block)
    if condition
    attributes["style" ] = "display: none"
    end
    content_tag("div" , attributes, &block)
    end
    在頁面上使用
    <% hidden_div_if(@cart.items.empty?, :id => "cart" ) do %>
    <%= render(:partial => "cart" , :object => @cart) %>
    <% end %>
    來引用.

    posted on 2008-12-04 18:45 Anemone 閱讀(334) 評(píng)論(0)  編輯  收藏 所屬分類: RUBY學(xué)習(xí)

    My Links

    Blog Stats

    News

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    新聞檔案

    相冊(cè)

    常去網(wǎng)站

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久免费国产精品| 在线观看国产一区亚洲bd| 最新亚洲成av人免费看| 国产又大又粗又硬又长免费| 亚洲mv国产精品mv日本mv| 亚洲精品国产高清嫩草影院| 亚洲愉拍一区二区三区| 91视频国产免费| 亚洲最大av资源站无码av网址| 在线视频免费观看高清| 在线综合亚洲中文精品| 夫妻免费无码V看片| 亚洲国产区男人本色| 一本久久综合亚洲鲁鲁五月天| 亚洲欧洲自拍拍偷午夜色无码| a级毛片毛片免费观看永久| 自拍偷自拍亚洲精品被多人伦好爽| 一个人看的免费高清视频日本| 国产成人亚洲精品91专区手机| 国产免费久久精品丫丫| 亚洲va国产va天堂va久久| **俄罗斯毛片免费| 亚洲高清一区二区三区| 久久久久久一品道精品免费看| www.亚洲色图.com| 中文字幕高清免费不卡视频| 亚洲AV无码一区东京热久久| 精品国产污污免费网站aⅴ| 亚洲愉拍一区二区三区| 国产自偷亚洲精品页65页| 午夜不卡久久精品无码免费| 亚洲粉嫩美白在线| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 免费成人高清在线视频| 亚洲一级黄色大片| 亚洲AV伊人久久青青草原| 免费视频成人手机在线观看网址| 亚洲国产午夜电影在线入口| 一级毛片aaaaaa免费看| 亚洲日本在线电影| 在线亚洲精品自拍|