Как увеличить простой счетчик - PullRequest
0 голосов
/ 08 февраля 2020

Это мой дом. html .erb:

<div class="container">
    <% @articles.each do |article| %>
        <div class="bloc-article">
            <div class="article">
                <%= image_tag(article.picture, alt: "Article", width:"230", height:"240")%>
                <div class="align-content-column">  
                    <div class="celsuis"><span class="moins">- </span> <%= article.counter %>°  <span class="plus">+</span></div>
                    <div class="title">
                        <%= article.title %>
                    </div>
                        <h2><%= article.price %> €</h2>
                    <div class="desc-author">
                        <p><%= article.description[0, 200] %>....</p>
                        <div class="author-deal">
                            <h3><%= article.author %></h3>
                            <div class="alert alert-info"><%= link_to "Voir le Deal", article_path(article) %></div>
                        </div>
                    </div> 
                </div>
            </div> 
        </div>        
        <% end %>

</div>

У меня есть span - и span +. Я хочу поставить onClick метод увеличения для + и уменьшения для -.

Для этого у меня есть база данных с article.counter (автоматически сгенерировать число с Faker::numb) С Vue. js Я могу сделать это легко, но на Ruby на Rails я полностью потерян.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2020

У вас много серьезных проблем с пониманием Rails-приложений (и веб-приложений в целом). Вот несколько советов:

  1. Весь код Ruby (включая фрагменты внутри <% %>) оценивается на сервере.
  2. Весь код JavaScript в приложении Rails оценивается в браузерах.
  3. Сервер и браузеры - это разные компьютеры, поэтому они не разделяют память и, следовательно, объекты.
  4. Браузер не может вызывать Ruby методы как * Код 1020 * можно оценить только на сервере. Браузер может только попросить сервер сделать что-то через отправку HTTP-запросов.
  5. Когда запрос завершен и веб-страница отображается в браузере, сервер больше не знает браузер, и каждый бит памяти на сервере, связанный с запросом, становится мусором.
0 голосов
/ 12 февраля 2020

Допустим, у вас есть модель "Артикул" с колонкой "Количество". Вы могли бы сделать что-то в соответствии с этим (я не проверял это, просто давая вам руководство)

Пока вы используете обычные ресурсы в ваших маршрутах:

По вашему мнению :

<%= form_for (@article), method: :put do |f| %>
  <%= f.button "-", name: "update", value: "decrement" %>
  <%= f.button "+", name: "update", value: "increment" %>
<% end %>

В вашем контроллере:

def update
  @article = Article.find(whatever you use to find it)

  if params[:update]["increment"]
    @article.quantity += 1
  elsif params[:update]["decrement"]
    @article.quantity -= 1
  end

# repond_to here and so on
# and don't forget to @article.save

end

Затем вы можете использовать jQuery (вероятно, нет необходимости в событии onClick) для рендеринга части, в которой отображается счетчик в смотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...