我不知道标记这个的最好方法,但基本上,我有3个模型,
课程:一个主题,有很多会话 会话:有许多插槽组成一个会话 插槽:具有发生在
上的日期和时间这个想法是,如果您对课程感兴趣,请注册参加课程。每个会话将有相同数量的老虎机,但这些可能在一个月的不同时间(例如,你可以在7月30日至8月3日,或一周后,8月6日至8月10日同一会议)
所以我需要尝试设置我的嵌套for,所以你可以添加或删除Sessions,每个都应该有相同数量的嵌套Slots(基于表格上某处的下拉数字)。
有人能想到这样做的好方法吗?甚至是一种讨厌的方式?我遇到了麻烦:)
我已经使用了一些JS和东西,但是现在当它保存时,它始终是错误,说Sessions插槽会话无效 - 它没有将插槽session_id设置为其父会话而且它没有将会话course_id设置为当然
我无法理解为什么。有人见过这个吗?对象位于has_many数组中......
{“title”=>“test123”,“description”=>“test123”,“sessions_attributes”=> {“0”=> {“slots_attributes”=> {“0”=> ; {“when(3i)”=>“10”,“when(2i)”=>“8”,“when(1i)”=>“2012”,“when(4i)”=> “10”,“when(5i)”=>“00”,“_ destroy”=>“0”},“1”=> {“when(3i)”=>“10”,“when (2i)“=>”8“,”when(1i)“=>”2012“,”when(4i)“=>”10“,”when(5i)“=>”00“, “_destroy”=>“0”},“2”=> {“when(3i)”=>“”,“when(2i)”=>“”,“when(1i)”=> ;“”,“when(4i)”=>“”,“when(5i)”=>“”,“_ destroy”=>“1”},“3”=> {“when(3i )“=>”“,”when(2i)“=>”“,”when(1i)“=>”“,”when(4i)“=>”“,”when(5i)“ =>“”,“_ destroy”=>“1”},“4”=> {“when(3i)”=>“”,“when(2i)”=>“”,“当(1i)“=>”“,”当(4i)“=>”“,”当(5i)“=>”“,”_ destroy“=>”1“},”5“=> ; {“when(3i)”=>“”,“when(2i)”=>“”,“when(1i)”=>“”,“when(4i)”=>“”, “when(5i)”=>“”,“_ destroy”=>“1”},“6”=> {“when(3i)”=>“”,“when(2i)”=> ;“”,“when(1i)”=>“”,“when(4i)”=>“”,“when(5i)”=>“”,“_ destro y“=>”1“},”7“=> {”when(3i)“=>”“,”when(2i)“=>”“,”when(1i)“=> “”,“when(4i)”=>“”,“when(5i)”=>“”,“_ destroy”=>“1”},“8”=> {“when(3i) “=>”“,”当(2i)“=>”“,”when(1i)“=>”“,”when(4i)“=>”“,”when(5i)“= >“”,“_ destroy”=>“1”},“9”=> {“when(3i)”=>“”,“when(2i)”=>“”,“when( 1i)“=>”“,”当(4i)“=>”“,”当(5i)“=>”“,”_ destroy“=>”1“},”10“=> {“when(3i)”=>“”,“when(2i)”=>“”,“when(1i)”=>“”,“when(4i)”=>“”,“当(5i)“=>”“,”_ destroy“=>”1“},”11“=> {”when(3i)“=>”“,”when(2i)“=> “”,“when(1i)”=>“”,“when(4i)”=>“”,“when(5i)”=>“”,“_ destroy”=>“1”}, “12”=> {“when(3i)”=>“”,“when(2i)”=>“”,“when(1i)”=>“”,“when(4i)”= >“”,“when(5i)”=>“”,“_ destroy”=>“1”},“13”=> {“when(3i)”=>“”,“when( 2i)“=>”“,”当(1i)“=>”“,”当(4i)“=>”“,”当(5i)“=>”“,”_ destroy“=> ;“1”},“14”=> {“when(3i)”=>“”,“when(2i)”=>“”,“when(1i)”=>“”,“ when(4i)“=>”“,”when(5i)“=>”“,”_ d estroy“=>”1“},”15“=> {”when(3i)“=>”“,”when(2i)“=>”“,”when(1i)“=> “”,“when(4i)”=>“”,“when(5i)”=>“”,“_ destroy”=>“1”},“16”=> {“when(3i) “=>”“,”当(2i)“=>”“,”when(1i)“=>”“,”when(4i)“=>”“,”when(5i)“= >“”,“_ destroy”=>“1”},“17”=> {“when(3i)”=>“”,“when(2i)”=>“”,“when( 1i)“=>”“,”当(4i)“=>”“,”当(5i)“=>”“,”_ destroy“=>”1“},”18“=> {“when(3i)”=>“”,“when(2i)”=>“”,“when(1i)”=>“”,“when(4i)”=>“”,“当(5i)“=>”“,”_ destroy“=>”1“},”19“=> {”when(3i)“=>”“,”when(2i)“=> “”,“when(1i)”=>“”,“when(4i)”=>“”,“when(5i)”=>“”,“_ destroy”=>“1”}} }}}
在保存之前添加此代码已修复它,但我不知道为什么需要它。
def apply_nested_models_hack
## HACK ##
@course.sessions.each do |s|
s.course = @course
s.slots.each { |ss| ss.session = s }
end
## /HACK ##
end
我想知道为什么这些关系没有得到确定,即使我已经解决了我的问题,但我没有回答这个问题。
事实证明这不是嵌套形式,而是事实:
validates :session, presence: true
插槽上的- ActiveRecord在保存之前不设置关系的这一面,因此它被认为是无效的并且不会保存。我认为这是AR中的一个错误,因为它应该显示数据库中的关系,即使它们还没有被保留。
答案 0 :(得分:0)
答案 1 :(得分:0)
事实证明这不是嵌套形式,而是事实:
validates :session, presence: true
插槽上的- ActiveRecord在保存之前不设置关系的这一面,因此它被认为是无效的并且不会保存。我认为这是AR中的一个错误,因为它应该显示数据库中的关系,即使它们还没有被保留。