2009-09-24 76 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