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

标签 ruby-on-rails-4 associations belongs-to autosave

我使用的是 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/

相关文章:

r - 如何从R中的关联规则中删除大括号和 '' =>“符号

php - cakephp中可选的belongsTo关系

ruby-on-rails - Rails 4 — 如何从 JSON API 填充用户模型?

ruby-on-rails - Rails 4 自动生成的删除 RSpec 测试失败,即使该功能正在开发中

ruby-on-rails - rails : Query parents with grandchildren (associations)

ruby-on-rails - Rails 模型关系 : Has one but also belongs to many

ruby-on-rails - 在RoR,ElasticSearch和Searchkick中在归属关系中搜索

ruby-on-rails - 有没有办法在 Rails 中的 Postgresql 记录中强制执行 JSON 字段的模式?

ruby-on-rails - UUID 列值在模型重新加载之前不可用

mysql - Hibernate+Gilead 应用程序中关联对象上的关系被删除