У меня есть две модели: владелец и примечание.В форме владельца внизу у меня есть вложенная форма для текстовой области для хранения заметки.Он отлично работает для новых, но при редактировании, если нет заметки, он не сохранит отношения между заметкой и 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"