2016-07-08 1 views
3

Я использую 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 пуст. Как я могу это исправить?

ответ

0

В моем первоначальном наблюдении

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

В приведенном выше хэша, адрес типа 'текст'.

И вы упомянули об иностранном ключе «address_id», который может быть «целочисленным».

Возможно, проблема с типом данных.

+0

Благодарим за описание проблемы, но я не совсем понимаю, что настоящий «ответ» из waht, который вы указали. Что мне нужно сделать, чтобы исправить проблему? – Dave

+0

у вас есть has_many: my_objects в вашей модели address.rb? –

+0

Я сделал «has_one», мое рассуждение, являющееся адресом, может быть связано только с одним «my_object». – Dave

Смежные вопросы