Добавить строку в базу данных при наведении - ruby ​​on rails - PullRequest
0 голосов
/ 23 мая 2018

Я хочу чего-то добиться в рельсах: у меня новая колония в bdd, по умолчанию элемент равен 1 для всех пользователей.У меня есть таблица «userarticles», которая будет содержать идентификатор статьи и идентификатор пользователя для каждой пролетающей статьи. Поэтому я хочу, чтобы, когда пропадает разделительный элемент с «новой» вкладкой, и он помещает в базу данных, чтопользователь увидел статью

, поэтому моя проблема в том, что когда мой запрос JQuery удалить div, он работает, но я не могу сделать железнодорожные запросы

<script>
$('.newness').hover(
function() {
$(this).addClass('hover);
//i want to put my rails function there
//I try this
//$(this).innerHTML('<%= article.id %>')
//but he return my all time the same ID.. 
}
</script>
<!--rest of my code -->
<h5> <%= article.title %> </h5>
<div class="newness">new</div>
<!--rest of my code-->

вот результат:

Результат

Извините за мой английский, Бен

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Вы можете создать форму, но вы также можете создать выделенное действие в вашем контроллере, которому передается идентификатор статьи, затем вы можете изменить трекер visibility на «видел» или на «1», если логическое значение

По вашему мнению, вы должны вызывать это действие при наведении курсора, следуя разделу 2 этой темы: Использование: remote => true с событием при наведении

Вы должны упомянуть толькопуть к выделенному действию, а также передать идентификатор статьи.Это позволяет избежать создания формы со скрытыми полями.

Наконец, чтобы удалить вкладку для статьи, просто поместите javascript в файл представления с именем, подобным вашему действию: dedicated_action.erb.js, где вы поместили несколько JS или Jquery.код, чтобы заставить div статьи исчезнуть.Единственное, что вам нужно сделать в исходном представлении со всеми статьями, - это назначить идентификатор для Div, который является контейнером статьи, и использовать тот же идентификатор в представлении JS, чтобы выбрать правильный DIV.

0 голосов
/ 23 мая 2018

Прошу прощения, что не понимаю всего, но я новичок в рельсах. На данный момент у меня есть форма для добавления User_activity: Таблица, которая содержит идентификатор пользователя и статьи, и мой функциональный указатель остается поставить эту частьвместе, чтобы добавить в базу данных, когда мышь находится при наведении мыши div

<script>
  $('.newness').hover(
    function() {
      $(this).addClass('hover);
      myArticleId = $(this).data('id');
      //I want there to put user_id & activity_id in my database
    }
  )
</script>

Есть моя модель:

//appcontroller
def set_variables
@userarticle = UserArticle.new
end
//user_articles_controller
def create
@user = current_user
@userarticle = @user.user_articles.build(userarticles_params)
@userarticle.save
redirect_to root_path
end

Спасибо

0 голосов
/ 23 мая 2018

Вам нужен один js-скрипт, который должен контролировать множество блоков статей.Таким образом, вы можете поставить <% = article.id%> в сценарий каждый раз, но сценарий запускается один раз после загрузки страницы.Это означает, что вы добавляете в js только последний идентификатор статьи.

Но вы можете пометить блок HTML (использовать атрибут данных), а затем просто прочитать заметку.Например:

<div class="newness" data-id='<%= article.id %>'>new</div>

А затем один раз напишите вам js:

<script>
  $('.newness').hover(
    function() {
      $(this).addClass('hover);
      //read your note there
      myArticleId = $(this).data('id');
      // console.log(myArticleId);
      // do something with id or send ajax request
    }
  )
</script>
...