Rails 3 Ajax成功消息

时间:2011-03-13 17:52:50

标签: ruby-on-rails

我有一个投票系统,我正在尝试Ajax。

在视图中我有:

<div id="yes"><%=button_to 'Vote',vote_path(c),:id=>c.id,:remote=>true,:html=>{:class=>"vote"}%></div>

and the controller goes:
`def vote

    number=Video.find(params[:id])
    number.increment!(:votes)
    if number.update_attributes(params[:votes])
       flash[:notice] = "Vote Recorded Successfully."

    render :text => number.votes  

   end`

当用户投票时,我想隐藏投票按钮并显示“感谢投票”等消息。

所以,在我的application.js中,我有

$(document).ready(function(){
    $(".vote").bind("ajax:success",function(evt,xhr,settings){
       var $ent=$(this);
        $ent.find(("div.yes")).hide(100);
    }
    }
);

请指出一些资源来完成这件事。谢谢。

2 个答案:

答案 0 :(得分:1)

你必须返回jQuery可以处理的东西,普通的JSON工作正常:

def vote
  ...
  render :json => {:votes => number.votes}
end

答案 1 :(得分:0)

而不是渲染:text,渲染erb.js视图。这被称为不引人注目的javascript。

See here