Я использую 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
Затем в моем приложении/контроллере/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
Однако, когда я сохраняю форму, я отправляю ее в метод «создать» с этими параметрами.
{"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 пуст. Как я могу это исправить?