2011-10-12 78 views
0

我有一个关于我在Rails 3.1中开发的简单应用程序的问题,但我不确定如何定义关联,并且正在寻找建议以实现以下。Rails 3.1活动记录关联可能与嵌套表单

我有磁带,每个磁带包含一个条形码。

我有箱子,每个箱子都有一个名字

什么,我需要跟踪的两个关联的动作,每天多达24个磁带将被放入一个盒子里,所以我需要创建的一种方式一个新的表单上的现有盒子和现有磁带的关联,并理想地跟踪一些额外的信息。

磁带周期为5周,所以5周后磁带将(可能)与新盒子相关联。

我不知道如何关联模型,任何帮助或输入,将不胜感激

回答

0

你需要跟踪这箱它曾经属于哪一种?如果不是,这是一个简单的belongs_to/has_many关联。

class Tape 
    belongs_to :box 
end 
class Box 
    has_many :tapes 
end 

如果您需要跟踪过去的盒子,那么你就需要一个连接模型:

class WhateverYouWant 
    belongs_to :box 
    belongs_to :tape 
end 

,改变盒/磁带协会用“:通过”

+0

感谢这是它的底线,我会创建什么样的模型来做关联,你知道任何关于在“WhateverYouWant”模型中创建NEW记录的教程,但是使用其他两个模型的现有记录吗?我基本上设想了一个带有Box名称的文本输入的表单,然后是条形码的24个文本框,但是我不确定这是否需要控制器中的一些额外工作,或者如果accept_nested_attributes会为我处理此问题? – haXs

+0

是否有可能在连接模型上创建一个可从磁带和盒子模型中抽取的表单?我已经添加了acceps_nested_attributes_for:磁带,但我不确定如何获取已存在磁带的ID号 – haXs

+0

嗨,对不起 - 我已经离开了。连接模型是相当常见的Rails模式。你可以谷歌,并找到教程的堆。没有一个好的想法,但如果你有“网页开发与铁轨”的书,你会有它的东西在里面。否则谷歌给了我:http://www.tutorialspoint.com/ruby-on-rails/rails-models.htm (向下滚动)。 –