cuốn sách gpt4 ai đã làm

Hành vi bỏ phiếu bằng Javascript_as_votable

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 20:46:54 26 4
mua khóa gpt4 Nike

Tôi có một ứng dụng Rails trong đó mô hình Bài đăng của tôi có các nhận xét và các nhận xét đó có thể được thăm dò ý kiến. Tôi đang sử dụng Act_as_votable.

Tôi hiện đang bỏ phiếu cho ý kiến. Bây giờ tôi đang cố gắng triển khai một số javascript để mỗi khi ai đó bỏ phiếu cho một nhận xét, tôi không phải làm mới trang để bỏ phiếu được thông qua.

Đây là những gì tôi đã có trước đây (hiện đang làm việc):

Trong bình luận của tôi Bộ điều khiển:

  chắc chắn upvote_post_comment
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
@comment.liked_by current_user

respond_to do |format|
format.html {redirect_to :back}
end
end

Theo tôi:

<% if user_signed_in? && current_user != comment.user && !(current_user.voted_for? comment) %>


<%= link_to image_tag('vote.png'), like_post_comment_path(@post, comment), phương thức: :put %>
<%= "#{comment.votes.size}"%>



<% elsif user_signed_in? && (current_user = comment.user) %>

<%= image_tag('voted.png')%><%= "#{comment.votes.size}"%>

<% khác %>

<%= image_tag('voted.png')%><%= "#{comment.votes.size}"%>
<% end %>

Đây là những gì tôi có bây giờ:

Trong bình luận của tôi Bộ điều khiển:

 chắc chắn upvote_post_comment
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
@comment.liked_by current_user

respond_to do |format|
format.html {redirect_to:back}
format.json { kết xuất json: { count: @comment.liked_count } }
end
end

Theo tôi:

<% if user_signed_in? && current_user != comment.user && !(current_user.voted_for? comment) %>


<%= link_to image_tag('vote.png'), like_post_comment_path(@post, comment), phương thức: :put, class: 'vote', remote: true %>
<%= "#{comment.votes.size}"%>




$('.vote')
.on('ajax:send', function () { $(this).addClass('loading'); })
.on('ajax:complete', function () { $(this).removeClass('loading'); })
.on('ajax:error', function () { $(this).after('
Đã xảy ra sự cố.
'); })
.on('ajax:success', function (data) { $(this).html(data.count); });




<% elsif user_signed_in? && (current_user = comment.user) %>

<%= image_tag('voted.png')%><%= "#{comment.votes.size}"%>


<% khác %>

<%= image_tag('voted.png')%><%= "#{comment.votes.size}"%>


<% end %>

Điều này cho tôi thấy thông báo lỗi: "Đã xảy ra lỗi"

Khi tôi làm mới trang, tôi thấy phiếu bầu đã được thông qua và tôi thấy điều này trong thiết bị đầu cuối của mình:

Bắt đầu PUT “/1/comments/1/like” cho 127.0.0.1 lúc 2014-04-06 18:54:38 -0400
Xử lý bằng CommentsController#upvote_post_comment dưới dạng JS
Tham số: {"post_id"=>"1", "id"=>"1"}

Làm cách nào để bỏ phiếu qua Javascript? Để phiếu bầu được thông qua, số phiếu bầu sẽ cập nhật và biểu tượng phiếu bầu sẽ cập nhật thành vote.png thay vì vote.png?

câu trả lời hay nhất

Nhật ký của bạn cho thấy định dạng được yêu cầu là JS.

Xử lý bằng CommentsController#upvote_post_comment dưới dạng JS

Sẽ dữ liệu: {loại: :json } 添加到 liên kết_đến phương pháp yêu cầu định dạng JSON như thế này,

<%= link_to image_tag('vote.png'), like_post_comment_path(@post, comment), phương thức: :put, class: 'vote', remote: true, data: { type: :json } %> 

Điều này cho Bộ điều khiển biết rằng bạn muốn phản hồi JSON thay vì phản hồi Javascript.

biên tập -Cập nhật dựa trên ý kiến.

Cập nhật Bộ điều khiển để sử dụng,

format.json { kết xuất json: { count: @comment.like.size } }

Cập nhật JS để sử dụng,

.on('ajax:success', function(e, data, status, xhr) { $(this).html(data.count); });

Về hành vi bỏ phiếu Javascript_as_votable, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/22901455/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress