【发布时间】:2016-11-11 12:30:28
【问题描述】:
我使用的是 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 列为空白。我该如何解决这个问题?
【问题讨论】:
标签: ruby-on-rails-4 associations belongs-to autosave