true",但 Rails 并未保存我的关联-6ren"> true",但 Rails 并未保存我的关联-我使用的是 Rails 4.2.3 在我的数据库中,我有一个“my_objects”表,其中有一个“address_id”,它是返回“addresses”表的外键。我的 app/models/my_o-6ren">
gpt4 book ai didi

ruby-on-rails-4 - 尽管在我的模型中包含 ":autosave => true",但 Rails 并未保存我的关联

转载 作者:行者123 更新时间:2023-12-01 14:15:29 24 4
gpt4 key购买 nike

我使用的是 Rails 4.2.3 在我的数据库中,我有一个“my_objects”表,其中有一个“address_id”,它是返回“addresses”表的外键。我的 app/models/my_object.rb 文件中有这个……

class MyObject < ActiveRecord::Base
belongs_to :address, :autosave => true, dependent: :destroy
attr_accessor :address, :hour, :minute, :second, :location

然后在我的 app/controller/my_objects_controller.rb 中有

  def create
@my_object = MyObject.new(my_object_params)

respond_to do |format|
if @my_object.save
format.html { redirect_to controller: "my_objects", action: "index", notice: 'Saved successfully.' }
format.js { render js: "window.location='/my_objects'" }
else
format.html { render action: "index" }
format.json { render json: @my_object.errors, status: :unprocessable_entity }
format.js { render json: { errors: @my_object.errors, success: false }, content_type: 'application/json' }
end

private

def my_object_params
params.require(:my_object).permit(:name, :day, :distance, :distance_unit_id, address: [:city, :state_id, :country_id], my_object_times_attributes: [:time_in_ms, :overall_rank, :age_group_rank, :gender_rank])
end

但是,当我保存时,使用这些参数将表单提交给“create”方法

{"utf8"=>"✓", "my_object"=>{"id"=>"", "name"=>"DaveRace2", "day"=>"07/06/2016", "distance"=>"3", "distance_unit_id"=>"4", "hour"=>"00", "minute"=>"12", "second"=>"05", "address"=>{"city"=>"austin"}, "my_object_times_attributes"=>{"0"=>{"overall_rank"=>"", "age_group_rank"=>"", "gender_rank"=>"", "time_in_ms"=>"725000"}}}, "state"=>"AR", "country"=>{"country_id"=>"233"}, "commit"=>"Save"}

我的“my_objects”表中没有创建地址对象。填充所有其他字段,但 address_id 列为空。我该如何解决这个问题?

最佳答案

在我最初的观察中,

"address"=>{"city"=>"austin"} 

在上面的散列中,address 是 'text' 类型。

并且您提到了外键“address_id”,它可能是“整数”。

可能是数据类型问题。

关于ruby-on-rails-4 - 尽管在我的模型中包含 ":autosave => true",但 Rails 并未保存我的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com