Так что на странице просмотра я пробовал <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>