2012-08-13 81 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