【发布时间】:2020-11-10 03:57:07
【问题描述】:
我不断收到此消息 #<:parametermissing: param is missing or value empty: property>,只是不知道如何解决我所做的所有研究并将我的工作与我的工作进行比较。
我认为我的创建操作设置正确
def create
raise params.inspect
@property = Property.create(prop_params)
if @property.save!
render json: @property
else
render json: { error: "Couldn't save"}
end
end
def prop_params
params.require(:property).permit(:address, :state, :sale_price, :owner_id)
end
这是我的属性模型。
class Property < ApplicationRecord
belongs_to :owner
end
当我执行 raise param.inspect 我得到了这个
Object { status: 500, error: "Internal Server Error", exception: "#<RuntimeError: <ActionController::Parameters {\"controller\"=>\"properties\", \"action\"=>\"create\"} permitted: false>>", traces: {…} }
我知道它应该显示我传递的内容,但在某些时候它只是停止显示我传递的内容并开始显示控制器和动作。
如何在前端提交表单?
listForm.addEventListener('submit',(event) =>{
event.preventDefault();
const property = {
address: document.getElementById('address').value,
state: document.getElementById('state').value,
sale_price: document.getElementById('sale_price').value,
owner_id: document.getElementById('owner_id').value,
}
const listObj = {
method: 'POST',
header: {
'Content-Type': 'application/json',
"Accept": "application/json"
},
body: JSON.stringify(property)
}
fetch(PROPERTIES_URL, listObj)
.then(res => res.json())
.then((list_data) => {
let new_listing = renderListing(list_data)
listings.append(new_listing)
listForm.reset()
console.log(list_data)
})
})
如何清除我的强大参数问题的障碍?
【问题讨论】: