Rubyで構築されたRESTFUL APIへのポストリクエストを作成した後に、user_id、created_at、およびupdated_atテーブルからnull値を取得しています。ホワイトリストのパラメータのほとんどの値は送信されますが、送信されないnull値(私の前提)のために「ロールバック」されます。 !REST API POST要求がNull値を表示するRuby on Railsに組み込まれました
(https://s7.postimg.org/9m5v1m2u3/Screen_Shot_2017-11-20_at_12.01.58_PM.png) [NULL値が示す]
(https://s7.postimg.org/h5yy3ngl7/Rollback.png) [ターミナルに示すrollsbackエラーここで
は、APIのコントローラである:ここ
class Api::V1::GigsController < ApplicationController
before_action :authenticate_user!, except: [:index, :show]
skip_before_action :verify_authenticity_token
def index
@gig_items = Gig.all
render json: @gig_items
end
def create
@gig_item = Gig.create(gig_params)
render json: @gig_item
end
def show
@gig_item = Gig.find(params[:id])
render json: @gig_item
end
private
def gig_params
params.require(:gig).permit(:title, :category, :description, :price, :main_image, :thumb_image, :status, category_ids: [])
end
end
でありますアクションクリエイターとアクシオを使用した後のリクエストコール
const ROOT_URL= "http://localhost:5000/api/v1/gigs"
export function createGig(values){
const request = axios.post(`${ROOT_URL}`, values);
return {
type: CREATE_GIG,
payload: request
}
}
とポスト要求アクションを処理するためにReduxの形式を使用して送信し、検証するためのパラメータ:自分のアプリケーションでPOSTリクエストを行う場合、それはのcreated_at、updated_atのにnull値を生成する理由として
onSubmit(values){
this.props.createGig(values);
}
render(){
const { handleSubmit } = this.props;
return(
<form onSubmit={handleSubmit(this.onSubmit.bind(this))}>
<Field
label="Title of Gig"
name="title"
component={this.renderField}
/>
<Field
label="Categories"
name="categories"
component={this.renderField}
/>
<Field
label="Description"
name="description"
component={this.renderField}
/>
<Field
label="Price"
name="price"
component={this.renderIntegerField}
/>
<Field
label="Status"
name="status"
component={this.renderIntegerField}
/>
<Field
label="Main Image"
name="main_image"
component={this.renderField}
/>
<Field
label="Thumb Image"
name="thumb_image"
component={this.renderField}
/>
<button type="submit" className="btn btn-success">Submit</button>
{" "}
<Link to={'/gigs'}><button type="submit" className="btn btn-danger">Cancel</button></Link>
</form>
)
}
}
export default reduxForm({
validate,
form: 'GigsNewForm'
})(
任意の考えとuser_idが他のものは問題ないようです。
おそらく、あなたは合格していない検証がありますか? '@gig_item = Gig.create!(gig_params)'を試して、検証エラーが出るかどうか確認してください。 – jvillian
私は私の問題の解決策を考え出しました。私はユーザ認証のためにdevisを使用していたことを認識しました。私はcurrent_userをcreateアクションに追加し、nullを返すパラメータを正常に渡すことができました。ご協力いただきありがとうございます。 – Jonathan