gpt4 book ai didi

javascript - Ajax 删除请求 ReactJS 和 Ruby on Rails

转载 作者:行者123 更新时间:2023-11-29 21:30:50 25 4
gpt4 key购买 nike

我有一个名为 Items 的组件,它位于一个名为 ItemsContainer 的父组件中。单击 Items 中的按钮时,将调用 Ajax 函数来删除该 Item。

然而,目前我收到了 500 错误消息,我不确定原因。

项目组件

class Item extends React.Component{

constructor(props) {
super()

this.state = {
name: '',
price: 0,
code: '',
id: ''
}
}

componentWillMount() {
this.setState({
name: this.props.data.name,
price: this.props.data.price,
code: this.props.data.code,
id: this.props.data.id
})
}

deleteItem() {
let finalUrl = '/items/' + this.state.id;
$.ajax({
type: "DELETE",
url: finalUrl, /* THIS URL IS CALLING CORRECTLY ie. /items/8 */
dataType: "json",
success: function(response) {
console.log("successfully deleted");
},
error: function () {
console.log("error");
}
})
}


render(){
let itemName = this.props.data.name
let itemCode = this.props.data.code
let itemQuantity = 1
let itemPrice = (this.props.data.price * itemQuantity).toFixed(2)
const itemId = this.props.data.id

return(
<tr>
<td>{itemName}</td>
<td>{itemCode}</td>
<td>{itemQuantity}</td>
<td><button className="btn btn-warning" onClick={this.deleteItem.bind(this)}>Remove</button></td>
<td>£{itemPrice}</td>
</tr>
)
}

Rails 项目 Controller

class ItemsController < ApplicationController

def create
@item = Item.new(item_params)
if @item.save
render partial: 'items/item', locals: {item: @item}
else
render json: @item.errors.to_json
end
end

def destroy
if @item.destroy
render partial: 'items/item', locals: {item: @item}
else
render json: @item.errors.to_json
end
end

private

def item_params
params.require(:item).permit(
:name,
:price,
:code,
:id
)
end

结束

创建新项目按预期工作,但我无法弄清楚为什么我收到删除操作的 500 错误。任何帮助将不胜感激。

最佳答案

请检查 rail controller 中的 destroy 方法。@item 没有定义,因此出现 500 内部服务器错误 :)

关于javascript - Ajax 删除请求 ReactJS 和 Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36545501/

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