0

我正在开发一个 ruby​​ on rails 应用程序,它可以对产品进行投票和否决。代码正在运行,我唯一的问题是我需要通过 javascript 提交投票,但我不知道如何开始。

这是我的路线

resources :products do
  member do
      post :vote_up
      post :vote_down
  end
end

这是我的控制器文件

def vote_up
  begin 
    @product = Product.find(params[:id])
    current_user.vote_exclusively_for(@product)
    @product.score = @product.plusminus
    @product.save
    render :nothing => true, :status => 200
  rescue ActiveRecord::RecordInvalid
    render :nothing =>true, :status => 404
  end
end

def vote_down
  begin 
    @product = Product.find(params[:id])
    current_user.vote_exclusively_against(@product)
    @product.score = @product.plusminus
    @product.save
    render :nothing => true, :status => 200
  rescue ActiveRecord::RecordInvalid
    render :nothing =>true, :status => 404
  end
end

这是我的视图文件

<td><%= link_to "Vote up", vote_up_product_path(product), :method=>:post %></td>
<td><%= link_to "Vote down", vote_down_product_path(product), :method=>:post %></td>

javascript包括

<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
4

1 回答 1

2
<td><%= link_to "Vote up", vote_up_product_path(product), :method=>:post, :remote => :true %></td>

然后您可以处理将事件处理程序附加到该链接的响应:

$(the_link_selector)
  .on('ajax:success', function1) // Executed when server answers with successful code
  .on('ajax:error', function2)   // Executed when server answers with error code
于 2013-05-12T15:54:51.747 回答