多层我不知道这个标签的最佳方式,但基本上,我有3种型号,Rails的嵌套形式深
课程:一个主题,其中有许多会议 会议:拥有众多的插槽,弥补一个会话 插槽:有它发生的日期和时间
这个想法是,如果你对课程感兴趣,你注册一个会话。每个会话将有相同数量的老虎机,但可能会在一个月的不同时间(例如,您可以在7月30日至8月3日进行为期5天的会议,或在一周后的8月6日至8月10日进行同一会话)
所以我需要尝试设置我的嵌套的,所以你可以添加或删除会话,每个人应该有相同数量的嵌套插槽(基于一个数字在下拉某个地方的形式)。
谁能想到这样做的一个很好的方式吗?甚至是一个讨厌的方式?我有麻烦:)
更新
我有一些JS和东西的工作,但现在当它保存,它总是错误说会话插槽会话是无效的 - 它不是设置插槽SESSION_ID其父会议和不设置COURSE_ID到课程
我想不通,为什么会。任何人见过这个?的对象是的has_many阵列中...
更新2
{ “标题”=> “test123”, “描述”=> “test123”, “sessions_attributes”=> { “0”=> { “slots_attributes”=> { “0”=> { “时的(3R)”=> “10”, “时(2I)”=> “8”, “时(1i)中”=> “2012”,“当(4i)“=>”10“,”当(5i)“=>”00“,”_destroy“=>”0“},”1“=>”当(3i) (2i)“=>”8“,”当(1i)“=>”2012“,”当(4i)“=>”10“,”当(5i)“=>”00“ (3i)“=>”“,”(2i)“=>”“,”(1i)“=>”“,”when(1i)“时,”_destroy“=>”0“},”2“=> (4i)“=>”“,”when(5i)“=>”“,”_destroy“=>”1“},”3“=> 2i)“=>”“,”when(1i)“=>”“,”when(4i)“=>”“,”when(5i)“=>”“,”_destroy“=>”1“} (3i)“=>”“,”(2i)“=>”“,”(1i)“=>”“,”(4i)“=>”“时,”4“=> (3i)“=>”“,”(2i)“=>”“时,”(5i)“=>”“,”_destroy“=>”1“},”5“=> “when(1i)”=>“”,“when(4i)”=>“” (3i)“=>”“,”(2i)“=>”“时,”(5i)“=>”“,”_destroy“=>”1“},”6“=> “(4i)”=>“”,“(5i)”=>“”,“_destroy”=>“1”},“7”=>“”时,当(2i)“=>”“,”(1i)“=>”“,”(4i)“=>”“,”(5i)“=>” (3i)“=>”“,”(2i)“=>”“,”(1i)“=>”“时,”>“,”_destroy“=>”1“}, (4i)“=>”“,”when(5i)“=>”“,”_destroy“=>”1“},”9“=>”当“(3i)”=>“ ”, “时(2I)”=> “”, “时(1i)中”=> “”, “时(4I)”=> “”, “时(图5I)”=> “”, “_destroy”= (3i)“=>”“,”(2i)“=>”“,”(1i)“=>”“时的”1“,”10“=> (3i)“=>”“,”(2i)“时”=>“”,“当(5i)”=>“”,“_destroy”=>“1”},“11”=> (1i)“=>”“,”(4i)“=>”“,”(5i)“=>”“,”_destroy“=>”1“},12 (3i)“=>”“,”(2i)“=>”“时,”(1i)“=>”“,”(4i)“=>”“,”当(3i)“=>”“,”当(2i)“=>”“,”(5i)“=>”“,”_destroy“=>”1“},”13“=> 1i)中 “=>” “ ”时(4I)“=> ”“, ”时(图5I)“=> ”“, ”_destroy“=> ”1“}, ”14“=> {” 时的(3R )“=>”“,”when(2i)“=>”“,”when(1i)“=>”“,”when(4i)“=>”“,”when(5i)“=>”“ ,“_destroy”=>“1”},“15”=> {“when(3i)”=>“”, (2i)“=>”“,”(1i)“=>”“时,”(4i)“=>”“,”(5i)“=>”“时,”_destroy“=> (3i)“=>”“,”(2i)“=>”“,”(1i)“=>”“时,”(4i)“=” (2i)=>“”,“(3i)”=>“”时,“(5i)”=>“”,“_destroy”=>“1”},“17”=>当(1i)“=>”“,”(4i)“=>”“,”(5i)“=>”“,”_destroy“=>”1“}时,”18“=” (2i)“=>”“,”(1i)“=>”“,”(4i)“=>”“时,”(3i)“=>” (3i)“=>”“,”(2i)“=>”“,”(1i)“时,”=>“”,“_destroy”=>“1”}, “=>””, “时(4I)”=> “”, “时(图5I)”=> “”, “_destroy”=> “1”}}}}}
更新3
在保存之前添加此代码修复了它,尽管我不知道为什么需要它。
def apply_nested_models_hack
## HACK ##
@course.sessions.each do |s|
s.course = @course
s.slots.each { |ss| ss.session = s }
end
## /HACK ##
end
我想知道为什么关系没有设置,即使我已经解决了我的问题,我没有回答这个问题。
更新4
事实证明,这不是嵌套形式,但事实上我有:
validates :session, presence: true
的插槽 - ActiveRecord的不设置关系的这一边,直到保存之后,因此它被认为是无效的,不会保存。我认为这是AR中的一个错误,因为它应该显示数据库中的关系,即使它们还没有被保存。
那么输出结果并不好看。你能复制/粘贴表格的代码吗?最好在要点或pastebin ...帖子变长了! – 2012-08-01 14:19:55
我已经基本上得到它呈现20个项目,设置_destroy = 1它没有使用和隐藏它们。这是行得通的,那个输出是我的预期。 – 2012-08-01 14:41:14