【发布时间】:2014-11-09 15:54:52
【问题描述】:
我有一个非常简单的 rails 应用程序,用户可以在其中对 pin 进行投票。我实现的系统运行良好,但我希望通过 ajax 方法在每次投票后更新投票数。
这是我现在的投票系统:
在 app/controllers/pins_controller.rb 中:
def upvote
@pin = Pin.friendly.find(params[:id])
@pin.votes.create(user_id: current_user.id)
respond_to do |format|
format.json { render json: { count: @pin.votes_count } }
end
end
在我的 app/views/pins/index.html.erb 中:
<%= link_to upvote_pin_path(pin), method: :post, remote: true do %>
<% if pin.votes.where(user_id: current_user.id).empty? %>
<span class="text-decoration: none;"><i class="fa fa-star"></i>
<% else %>
<span class="text-decoration: none;"><i class="fa fa-star" style="color:#c0392b"></i>
<% end %>
<% end %>
<span class="votes-count">
<%= pluralize(pin.votes.count, "") %>
</span>
因此,每当有人对 pin 进行投票时,只有在刷新页面后才能看到投票。有什么想法吗?
我知道我应该在我的视图中调用 upvote.js.erb 文件中的 ajax 方法,但这就是我迷路的地方。
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby ajax