Не удается сохранить детали вложенной формы - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть две модели: владелец и примечание.В форме владельца внизу у меня есть вложенная форма для текстовой области для хранения заметки.Он отлично работает для новых, но при редактировании, если нет заметки, он не сохранит отношения между заметкой и current_user.это сохраняет заметку, но не user_id, который записал заметку.

Вот как выглядит мой контроллер

Спасибо за любую помощь заранее или, по крайней мере, за поиск:)

owner.rb

class Owner < ActiveRecord::Base

  accepts_nested_attributes_for :notes, :reject_if => lambda { |a| a[:note_text].blank? }

end

owners_controller.rb

def edit
  @owner = Owner.find(params[:id])
  unless @owner.notes.present?   
    @owner.notes.build
  end
end

def update
  @owner = Owner.find(params[:id])
  @owner.notes.each do |n|
    if n.created_by_id == nil
      n.created_by_id = current_user
    else
      n.updated_by_id = current_user
    end
  end
  respond_to do |f|
    if @owner.update_attributes(params[:owner])
      f.html { redirect_to @owner, notice: 'Owner successfully updated.' }
      f.json { head :ok }
    else
      f.html { render action: "edit" }
      f.json { render json: @owner.errors, status: :unprocessable_entity }
    end
  end 

ох и моя модель note.rb

class Note < ActiveRecord::Base

  belongs_to :pet
  belongs_to :owner
  belongs_to :created_by, :class_name => "User", :foreign_key => "created_by_id"
  belongs_to :updated_by, :class_name => "User", :foreign_key => "updated_by_id"

1 Ответ

0 голосов
/ 10 февраля 2012

@owner.update_attributes(params[:owner]) - это место, где в методе обновления появляются заметки, но это происходит после , когда вы делаете @owner.notes.each, поэтому, конечно, блок кода, перенаправляющий текущего пользователя, не запускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...