2012-08-13 79 views
0

對不起,如果是noob問題,這是100次。 我有一個文章列表,其中按鈕是「購物車」。我讀了很多關於模態視圖和軌道,但所有這些都是爲link_to,如何做到這一點,如果我按下我的按鈕,它顯示我的購物車模式窗口? 這裏是我的代碼部分,用按鈕(它是免費的的form_tag等,它是:Rails提交按鈕和模態視圖

- @articles.each do |art| 
    = button_to 'В корзину', line_items_path(ART_ID: art), :id => "to-cart" 

我想,如果我點擊它,控制方法,在做這樣的東西,但它不」牛逼重定向任何地方,我仍然必須在同一頁上,和模態視圖(使用HTML和jQuery)必須用我的購物車局部出現:

-unless cart.line_items.empty? 
    %table.zebra 
    %tr 
     %th Наименование 
     %th Артикул 
     %th Производитель 
     %th Количество 
     %th Сумма 
    = render(cart.line_items) 
    %p 
    Общая сумма 
    = cart.total_price 
    %p 
    Наименований (количество): 
    = cart.total_count 
    = button_to 'Очистить корзину', cart, method: :delete, confirm: 'Вы уверены?' 
    -if current_user 
    = button_to "Оформить заказ", new_order_path, method: :get 
    -else 
    %p 
     Пожалуйста, для оформления заказа войдите в систему: 
     %a#cartlogin{:href => "#"} Логин 
    %p 
     Если у вас нет аккаунта, зарегистрируйтесь: 
     = link_to "Регистрация", new_user_path 
-else 
    Увы, ваша корзина пуста 

回答

0

你想通過的jQuery/JavaScript腳本做的事情。如果你正在尋找好看的modals,我建議你結賬jQuery UI dialog

你應該首先附加一個事件處理程序到鏈接,像這樣。然後通過添加event.preventDefault()行來禁用默認操作(可能是重定向)。然後,您可以使用ajax(可能採用JSON格式)請求視圖數據,並使用數據顯示模式。

$("#link").click(function(event) { 
    event.preventDefault(); 

    //do an ajax call here and show modal 
}); 

我建議你看看這些鏈接:

http://api.jquery.com/click/

http://api.jquery.com/event.preventDefault/

http://api.jquery.com/load/

..或者你可以看看這個插件,我還沒有嘗試過我自己,但它看起來很容易使用。

https://github.com/kylefox/jquery-modal

+0

我通過簡單的jQuery做到了這一點,但我想在軌的方式做到這一點。根據我的模式,我想渲染部分。這只是簡單的jQuery中如何做到這一點? – byCoder 2012-08-13 18:09:38

+0

爲了呈現jQuery中的部分內容,您必須在您的控制器中呈現部分內容。我建議你看看http://stackoverflow.com/questions/2229811/load-partial-with-jquery-and-rails,特別是第三個答案。 – maru 2012-08-13 18:23:27