Я использую Rails 4.2.3 В моей базе данных у меня есть таблица «my_objects» с адресом «address_id», который является иностранным вернитесь к таблице «адресов». У меня есть это в моем приложение/модели/файл my_object.rb ...Несмотря на включение в мою модель «: autosave => true», Rails не сохраняет мою ассоциацию
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 пуст. Как я могу это исправить?
Благодарим за описание проблемы, но я не совсем понимаю, что настоящий «ответ» из waht, который вы указали. Что мне нужно сделать, чтобы исправить проблему? – Dave
у вас есть has_many: my_objects в вашей модели address.rb? –
Я сделал «has_one», мое рассуждение, являющееся адресом, может быть связано только с одним «my_object». – Dave