2009-09-24 70 views
1

是否可以使用select字段和Rails 2.3的nested object forms功能?在Rails嵌套对象表单中使用选择字段

例子:

假设你有一个文章模型,分类模型和ArticleCategories加入模型。文章has_many类别through ArticleCategories。

在我们的“编辑文章”表单上,您想要获得所有可用类别的HTML select列表。用户可以选择一个或多个类别名称分配给文章(启用多选)。

有很多方法可以做到这一点,但我想知道是否有一种简单的方法来使用嵌套对象功能来实现这一点。在你看来,这张表格会是什么样子?

回答

1

假设你已经定义的模型和它们之间的关系,所以你可以这样做:

@art = Article.find(article_id) 
@art.categories # returns list of category objects this article is assigned to. 

然后我通常使用http://trendwork.kmf.de/175

你需要复制的JavaScript文件到公共/ JavaScript的,但之后你可以用类似的方式创建表单元素:

swapselect(:article,@art,:categories,Category.find(:all).map { |cat| [cat.name, cat.id] }) 

(我倾向于将其包装在帮助程序中以使呼叫甚至清洁剂)

一个小小的小问题,就是很长的列表可以,因为有相当多的appendChild,其中在IE6

更新notorioulsy慢的JS调用运行IE6有点慢:道歉。这并不能真正回答你原来的问题,这个问题是关于Rails 2.3特性的。 swapselect选项独立于版本,不使用更新的Rails功能。

+0

swapselect虽然不错。我在另一个项目中使用它。 – jaaronfarr 2009-09-25 01:51:00

+0

swapselect也可在此处获得:http://trac6.assembla.com/ve_designer_portal/browser/trunk/public/javascripts/swapselect.js – gparis 2011-06-22 14:27:00