2012-02-10 7 views
0

私はここに2つのモデル、オーナーとメモを持っています。下のオーナーフォームには、メモを保存するためのテキストエリア用のネストされたフォームがあります。 これは完全に新しく動作しますが、編集時にノートがない場合、ノートとcurrent_userの関係は保存されません。メモを保存しますが、メモを記録したuser_idは保存しません。ここでネストされたフォームの詳細を保存するのに問題があります

は私のコントローラは、事前に任意の助け、または少なくとも見ているため

のような感謝を見えるものです:)

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 
owners_controller.rb
class Owner < ActiveRecord::Base 

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

end 

owner.rb

ohと私のメモ.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" 

答えて

0

@owner.update_attributes(params[:owner])ノートは更新方法に存在に入って来るところであるが、もちろん、現在のユーザーをredardingコードのブロックが実行を取得していないので、それはあなたが@owner.notes.eachを行う後にかかります。

関連する問題