簡體   English   中英

正確使用Ajax和Rails的方法

[英]Correct way to use Ajax with rails

我正在嘗試將ajax添加到投票系統,但是很難用jQuery定位單個元素。 這是我到目前為止所擁有的:

在索引操作中投票鏈接

<%= link_to post_votes_path(post), :method => 'post', :remote => true do %>
<span class="score"><%= post.votes.size %></span>
<% end %>

在投票控制器中創建動作

def create
@post = Post.find(params[:post_id])
@vote = @post.votes.create

respond_to do |format|
  format.html { redirect_to root_url }
  format.js 
end
end

jQuery在表決#創建視圖(create.js.erb)

$('.score').html("I voted"); 

麻煩的是,當我單擊鏈接進行投票時,它更改了所有帖子的html,而不僅僅是我嘗試投票的帖子。 沒有jQuery的豐富經驗,所以我禁不住想我缺少明顯的東西。 有任何想法嗎 ?

您所有的跨度都有.score類。 這就是所有改變的原因。

這是一個可能的解決方案。 更改您的html:

<span class="score p_<%= post.id%>"><%= post.votes.size %></span>

然后更改您的create.js.erb

$('.score.p_<%= @post.id %>').html("I voted");

我通常只使用JQuery的$ .post。 我正在使用asp.net,但假設rails也可以使用。

$.post("/someurltoyouraction", {myval:val},function(data){
  // do stuff after post
});

這將產生一個Ajax發布請求。 您可以在{myval:val}對象中定義發布參數,以符合您的要求。 本質上是基於鍵值定義的對象{key:value}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM