从控制器Ruby On Rails将数据插入数据库?

时间:2016-04-17 03:39:07

标签: ruby-on-rails ruby

在casting_controller中的 def创建功能中。我创建一个Casting对象并保存它。这没关系,但我也想创建一个LinkCastingToModel对象,从我的控制器向它插入数据,但是当我检查时,数据总是为零。我如何将数据插入其中

def create
  @casting = Casting.new(casting_params)
  @casting.models_booked = 0
  link = LinkModelAndCasting.new
  link.client_id = @casting.id
  link.save
  # link_model_and_casting = LinkModelAndCasting.new(:casting_id => @casting.id)
  # link_model_and_casting.save

  respond_to do |format|
    if @casting.save
      format.html { redirect_to @casting, notice: 'Casting was successfully created.' }
      format.json { render :show, status: :created, location: @casting }
    else
      format.html { render :new }
      format.json { render json: @casting.errors, status: :unprocessable_entity }
    end
  end
end

我使用postgresql,谢谢。

1 个答案:

答案 0 :(得分:2)

这是因为当您从clinet_id分配link@casting.id时,直到那时@casting未被保存,所以{{1实际上是id

在此之前,您必须致电nil。然后它会工作。像这样:

@casting.save