"タイムシート"と "タイムシートライン"の間に "accepts_nested_attributes_for"の関係があります。タイムシートを(編集/更新)を編集するとき、これは素晴らしい作品が、新しいタイムシートを(新規作成/)を追加するとき、それは次のエラーを返します。accepts_nested_attributes_forは新規/作成ではなく、編集/更新で動作します
tms timesheetlines tms timesheet can't be empty
新しいのタイムシートにどの知らないようですタイムシートは属しています。これは、タイムシートでの関係です:
has_many :tms_timesheetlines, :dependent => :destroy, :order=>"daynr ASC"
accepts_nested_attributes_for :tms_timesheetlines, :reject_if => lambda { |a| a[:daynr].blank? }, :allow_destroy => true
そして「新」アクションでtimesheetlinesは、ビルドされている:
@timesheet = TmsTimesheet.new
month_lines = Time.days_in_month(@current_period.period_nr).to_i
month_lines.times { @timesheet.tms_timesheetlines.build }
作成する際の編集ではなく、とき、それは問題なく動作しますなぜ任意のアイデア?ありがとう!
更新:
はどちらが新しいタイムシートのとき、私は、各timesheetlineで、この隠しフィールドを追加するときに、新しい編集したタイムシートの作品の保存:
<%= tl.hidden_field :tms_timesheet_id, :value => timesheet %>
そして、このことは編集のとき:
なぜ両者が機能するのですか?
私は問題のあるものを更新しましたが、私の意見ではまだ変わっています。 – John