Jquery 删去一句“;例如;在RubyonRails中使用Ajax会引发内部服务器错误
我对Rails中的许多槽式关系和AJAX有些陌生,我正在尝试制作一个简单的“喜欢”系统,用户可以喜欢一个事件,也可以“不喜欢”它,当用户喜欢一个事件时,它可以完美地工作,更改保存到数据库中,计数刷新没有问题,但是,当我尝试删除喜欢的事件时,它会向我抛出一个内部服务器错误,进一步的删除会抛出一个找不到的错误,这意味着类似的内容已被删除,但在我刷新整个页面之前,计数和按钮不会刷新。这只有在我尝试使用AJAX时才会发生 这是销毁方法:Jquery 删去一句“;例如;在RubyonRails中使用Ajax会引发内部服务器错误,jquery,ruby-on-rails,ajax,internal-server-error,Jquery,Ruby On Rails,Ajax,Internal Server Error,我对Rails中的许多槽式关系和AJAX有些陌生,我正在尝试制作一个简单的“喜欢”系统,用户可以喜欢一个事件,也可以“不喜欢”它,当用户喜欢一个事件时,它可以完美地工作,更改保存到数据库中,计数刷新没有问题,但是,当我尝试删除喜欢的事件时,它会向我抛出一个内部服务器错误,进一步的删除会抛出一个找不到的错误,这意味着类似的内容已被删除,但在我刷新整个页面之前,计数和按钮不会刷新。这只有在我尝试使用AJAX时才会发生 这是销毁方法: def destroy @event = Like.fin
def destroy
@event = Like.find(params[:id]).event_id
@evento = Event.find(@event)
current_user.unlike(@event)
respond_to do |format|
format.html { redirect_to @evento }
format.js
end
end
按钮:
<%= form_for(current_user.likes.find_by(event_id: @event.id),
html: { method: :delete },
remote: true) do |f| %>
<%= f.submit "Unlike", class: "unlike_button" %>
<% end %>
而JS:
$("#like_form").html("<%= escape_javascript(render('events/like')) %>");
$("#likes").html('<%= @event.likes.count %>');
$(“#like_form”).html(“”);
$(“#喜欢”).html(“”);
我可以停止使用AJAX,但我想知道问题出在哪里,到目前为止我还没有发现任何东西可以解决这个问题
编辑:
这是我的模型
用户模型:
class User < ApplicationRecord
has_many :events
has_many :likes, dependent: :destroy
has_many :liked_events, through: :likes, source: :event
def like(event)
liked_events << event
end
def unlike(event)
liked_events.delete(event)
end
def likes?(event)
liked_events.include?(event)
end
end
class用户 请检查服务器日志以查看错误。您应该发布模型代码和ajax调用。如何检查服务器日志?我相信ajax调用已经存在了,因为我使用的是rails,它会自动调用它,除非我遗漏了什么。
class Like < ApplicationRecord
belongs_to :user
belongs_to :event
validates :user_id, presence: true
validates :event_id, presence: true
end
class Event < ApplicationRecord
belongs_to :user
has_many :likes
has_many :users, through: :likes
end