gpt4 book ai didi

Jquery Ajax post 请求返回成功,但 Rails/Sqlite 数据库未更新

转载 作者:行者123 更新时间:2023-12-01 03:32:29 25 4
gpt4 key购买 nike

我正在尝试使用 Ajax post 请求将数据发送到 Rails 创建函数来创建新评论,但它似乎不起作用。 AJAX请求返回成功,但是当我检查数据库时没有新的评论。

我的ajax请求在这里:

$.ajax({
type: "POST",
url: "/reviews/new",
data: { review: { email: review_email, rating: review_rating, comment: review_comment} },
success: function(data){
console.log("SUCC");
console.log(data);
},
error: function(data){
console.log(data);
}
});

我的 Rails review Controller 如下所示:

class ReviewsController < ApplicationController
skip_before_action :verify_authenticity_token

def index
@reviews = Review.all
@review = Review.new
end
def new
@reviews = Review.new
end

def create
@email = params[:email]
@rating = params[:rating]
@comment = params[:comment]
@review = Review.create(review_params)

if @review.save
redirect_to @review
else
end
end

def show
@review = Review.find(params[:id])
end

def destroy
@review = Review.destroy(params[:id])
end

private
def review_params
params.permit(:email, :rating, :comment)
end
end

我是 Rails 新手,所以很多 Rails 内容可能会令人厌恶,因为我已经使用了大约 10 个不同的教程来尝试解决这个问题。

最佳答案

您似乎对哪些路线的作用有点困惑。如果您执行 bin/rails 路线(或 bin/rake 路线,具体取决于您的 Rails 版本),您应该会看到类似这样的评论:

      reviews GET    /reviews(.:format)          reviews#index
POST /reviews(.:format) reviews#create
new_review GET /reviews/new(.:format) reviews#new
edit_review GET /reviews/:id/edit(.:format) reviews#edit
review GET /reviews/:id(.:format) reviews#show
PATCH /reviews/:id(.:format) reviews#update
PUT /reviews/:id(.:format) reviews#update
DELETE /reviews/:id(.:format) reviews#destroy

这些是正常的 REST/Rails 路线,因此:

  1. GET/reviews 用于列出一堆评论。
  2. POST/reviews 用于创建新评论,因此 #create Controller 方法与此路由关联。
  3. GET/reviews/new 用于获取“创建新评论”页面。
  4. GET/reviews/:id/edit 用于获取“编辑 :id 评论”页面。
  5. GET/reviews/:id 用于获取评论的详细信息:id
  6. PATCH/reviews/:idPUT/reviews/:id 用于使用一些新信息更新评论 :id。<
  7. DELETE/reviews/:id 用于删除评论:id

您的 $.ajax 调用正在 POST 到 3(通常使用 GET),而它应该 POST 到 2,所以您是只是使用了错误的路线。您需要在 $.ajax 调用中使用 url: '/reviews',因为 POST/reviews 是您用来创建新资源的内容。

关于Jquery Ajax post 请求返回成功,但 Rails/Sqlite 数据库未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48602510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com