【发布时间】:2015-02-23 21:41:34
【问题描述】:
我是 Ruby on Rails 的新手,我正在开发一个项目(Pinterest 克隆),该项目有一个模型 User 和一个模型 Pin。我正在使用 acts_as_votable gem 让用户对上传的图像进行投票或否决,我称之为“pins”。一切正常,但我正在刷新喜欢/不喜欢系统的页面,以更新喜欢/不喜欢计数器。
我想使用 AJAX,这样我就不需要刷新页面了。
Pin 控制器有这个:
def destroy
@pin.destroy
redirect_to root_path
end
def upvote
@pin.upvote_by current_user
redirect_to :back
end
def downvote
@pin.downvote_by current_user
redirect_to :back
end
private
def pin_params
params.require(:pin).permit(:title, :description, :image)
end
def find_pin
@pin = Pin.find(params[:id])
end
我用的是haml,Pin -> show视图有以下内容:
#pin_show.row
.col-md-8.col-md-offset-2
.panel.panel-default
.panel-heading.pin_image
= image_tag @pin.image.url
.panel-body
%h1= @pin.title
%p.description= @pin.description
.panel-footer
.row
.col-md-6
%p.user
Submitted by
= @pin.user.name
.col-md-6
.btn-group.pull-right
= link_to like_pin_path(@pin), method: :put, class: "btn btn-default" do
%span.glyphicon.glyphicon-heart-empty
= @pin.get_upvotes.size
= link_to dislike_pin_path(@pin), method: :put, class: "btn btn-default" do
%span.glyphicon.glyphicon-thumbs-down
= @pin.get_downvotes.size
- if @pin.user == current_user
= link_to "Edit", edit_pin_path, class: "btn btn-default"
= link_to "Delete", pin_path, method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-default"
我的 routes.rb 有这个:
resources :pins do
member do
put "like", to: "pins#upvote"
put "dislike", to: "pins#downvote"
end
结束
当我有这种方法时,我该如何实现 AJAX。我是 Rails 新手,我几乎被困在这里
【问题讨论】:
标签: ruby-on-rails ajax