我正在使用PostgreSQL。我在/main
URL(localhost:3000 / main)上有下一个表单:
=form_for(@car) do |b|
.col-xs-2= b.text_field(:type, class: "form-control", placeholder: "Type")
= b.submit('Buy', class: "btn btn-default")
在我的控制器中:
def main
@car = Car.new
end
def new
@car = Car.new
end
def create
@car = Car.new(car_params)
respond_to do |format|
if @car.save
format.html { redirect_to @car, notice: 'Car was successfully ordered.' }
format.json { render :show, status: :created, location: @car }
else
format.html { render :new }
format.json { render json: @car, status: :unprocessable_entity }
end
end
端
,其中
def car_params
params.require(:car).permit(:type)
end
我检查了我的代码100次,似乎一切正常,但我无法在数据库表中添加新记录。任何人都可以帮助我为什么会这样?我的代码有什么问题?
答案 0 :(得分:0)
你忘了救车了。虽然您声明并设置了对象,但您忘记将其保存在数据库中。
您应该通过添加以下行来执行此操作:
@car.save
在创建动作
中答案 1 :(得分:0)
缺少create方法的一些东西。需要添加" .new"汽车变量的设定位置,然后也是" .save" if语句在哪里,我相信应该这样做。
创建方法应如下所示
def create
@car = Car.new(car_params)
respond_to do |format|
if @car.save
format.html { redirect_to @car, notice: 'Car was successfully ordered.' }
format.json { render :show, status: :created, location: @car }
else
format.html { render :new }
format.json { render json: @car, status: :unprocessable_entity }
end
end
答案 2 :(得分:0)
CustomerNumber OrderMonth NumberOfMonths
123 Jul 2011 15
123 Jan 2013 18
123 Aug 2015 30
不正确。
您需要执行@car = Car(car_params)
答案 3 :(得分:0)
您需要做的第一件事就是在create方法中替换这一行。
@car = Car(car_params)
这一行
@car = Car.new(car_params)
因为我们需要用允许的参数来初始化汽车的记录。之后你必须调用@car.save
,它将返回一个布尔值。
所以你可以在条件如
的情况下查看if @car.save
希望这能解决你的问题。