Ruby on Rails - SQLITE3::ConstraintException: NOT NULL约束失败.&



我对我的项目有疑问。我正在创建一个关于燃料价格的小项目,用户可以输入当前燃料的价格。要输入价格,请进入:petrol_station ->post_date→职位。在post中,有两个输入字段:diesel_price和pb_price。这是我在数据库的帖子。但是当我尝试添加price (post)时,我有这个错误。

我试过删除"NOT NULL"从db/模式。我也试着改变我的ERD模式,但我认为我已经得到了所有必须做的事情。

这是我的错误:

ActiveRecord::NotNullViolation in PostsController#create
SQLite3::ConstraintException: NOT NULL constraint failed: posts.petrol_station_id
Extracted source (around line #32):
respond_to do |format|
if @post.save
format.html { redirect_to [@petrol_station, @post_date], notice: 'Post was successfully created.' }
format.json { render :show, status: :created, location: @post }
else

这是我的仓库:

https://github.com/FilipK00/p-aplikacje-mobilne

下面是我的ERD模式:erd_schema

参数petrol_station_id超出了post的哈希值参数:

Parameters: {"authenticity_token"=>"[FILTERED]", "post"=>{"pb_price"=>"1", "diesel_price"=>"1"}, "commit"=>"Create Post", "petrol_station_id"=>"1", "post_date_id"=>"1"}

这就是NOT NULL错误的原因,它试图在petrol_station_id中为Post保存一个nil值。

由于您在创建操作的开头搜索PetrolStation:

@petrol_station = PetrolStation.find(params[:petrol_station_id])

@post = @post_date.posts.new(post_params)下面添加代码应该可以完成工作:

@post.petrol_station_id = @petrol_station.id

相关内容

  • 没有找到相关文章