我試圖從我的iOS應用程序向我的Rails API發送Post請求。我可以讓它接收到一個狀態代碼201(succes/created),但是,我實際上無法發送數據並在rails中創建對象。從Swift中的iOS發送數據到Params應用程序
這是我在軌API代碼:
def create
puts params
product = current_user.products.build(product_params)
if product.save
render json: product, status: 201, location: [:api, product]
else
render json: {errors: product.errors}, status: 422
end
end
private
def product_params
params.require(:product).permit(:title)
end
與上面的代碼,我收到的400狀態碼但是,當我從創建行動中刪除(products_params),然後我收到201狀態碼。所以它到達服務器並在我的數據庫中創建一個新對象,但其標題僅爲零。
問題是這樣的:當我打印出來的參數,可以他們來通過像這樣:
{"{\"title\":\"First Title\"}"=>nil, "format"=>:json,
"controller"=>"api/v1/products", "action"=>"create", "user_id"=>"2"}
然而,他們需要這樣來通過:目前
{"title"=>"First Title", "format"=>:json,
"controller"=>"api/v1/products", "action"=>"create", "user_id"=>"2"}
,在iOS端,我通過像這樣的參數發送:
let params = ["title": "First Title"]
如何從iOS發送參數這樣它們就能以正確的格式進入軌道側?
只是一點點更多的信息,這是我得到我的終端的響應,當我做POST請求:
感謝
向我們展示瞭如何發送'params'到Rails的。 Rails顯然以錯誤的方式接受這些參數。 – Leito
感謝您的回覆,但我想下面:)我沒有設置內容類型爲json。 – joey