Замена текста с помощью Jquery работает с классом, но не с идентификатором - PullRequest
0 голосов
/ 15 апреля 2019

Так что на странице просмотра я пробовал <div id= <%= dom_id(Video.find(x.id)) %>> <%= x.get_upvotes.size %> </div>

Для страницы upvote.js.erb, которую я пробовал Rails.$('#<%=dom_id(Video.find(@video.id))%>').innerHTML = ("<%= j (render partial: 'book', locals: { book: @video }) %>")

На странице JS console.log('#<%=dom_id(Video.find(@video.id))%>') дает мне вывод #video_12

И на странице просмотра <% puts dom_id(Video.find(x.id)) %> дает мне вывод video_12

Так что я не уверен, куда я иду не так. Буду признателен за любую оказанную помощь.

Маршруты

resources :videos do#, only: [:index, :show] do
    member do
       put "upvote", to: "videos#upvote"
       put "downvote", to: "videos#downvote"
    end
end

_book.html.erb

<p> Title: <%= book.get_upvotes.size %> </p>

upvote.js.erb

Rails.$('.random-book')[1].innerHTML = ("<%= j (render partial: 'book', locals: { book: @video }) %>")
console.log('#<%=dom_id(Video.find(@video.id))%>')
console.log(Rails.$('.random-book')[0])

def upvote

def upvote
    @video = Video.find(params[:id])
    @ip = request.remote_ip
    @was_it_upvoted = Ipaddresstracker.find_by(ipaddress: @ip, videoid: @video.id)
    if @was_it_upvoted
      @video.downvote_by User.first
      @was_it_upvoted.delete
    else
      Ipaddresstracker.create(:ipaddress => @ip, :videoid => @video.id)
      @video.vote_by voter: User.first, :duplicate => true
    end  
end

_index.html.erb

<div class="container">
<% @videos.each do |x| %>
<p> <div class="child">  
  <video controls width="310" height="230" src="<%= x.file %>"></video>
    <p> <%= x.title %> </p>

      <div>
        <%= link_to upvote_video_path(x), method: :put, remote: :true, class: "btn btn-default btn-sm" do %>

        <span class="glyphicon glyphicon-chevron-up"></span>
        Upvote
        <div class="random-book" id= <%= dom_id(Video.find(x.id)) %> > <%= x.get_upvotes.size %> </div>
  <% end %>
      <div>
        <br><br>
        <% if user_signed_in? %>
          <p> Contributor: <%= x.contributor %> </p>
          <p> Email: <%= x.email %> </p>
          <p> Phone: <%= x.phone %> </p>
          <p> <%= link_to 'Destroy', x, method: :delete, data: { confirm: 'Are you sure?' } %> </p>
        <% end %>
      </div>
      </div>
</div> </p>
<% end %>
</div>

1 Ответ

1 голос
/ 15 апреля 2019

я думаю, вам нужно добавить кавычки

вместо

<div class="random-book" id= <%= dom_id(Video.find(x.id)) %> ></div>

сделать:

<div class="random-book" id="<%= dom_id(Video.find(x.id)) %>" ></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...