這是一個後續How to I serve data from an object's associations in rails forms?如何在Rails的「編輯」表單中映射來自關聯的數據?
我想知道,我想用預先加載,以服務的文章的編輯頁面對象的標籤(以及那些通過關聯的表保存的其他屬性。在前面的問題,我被告知,我可以用協會預先加載預加載的數據。在IE控制器I充實到.find打電話包括
@article = Article.find(params[:id], :include => [:tags])
這將是巨大的,除了它有兩個主要注意事項:首先,它將對象提供給表單中的字段,因此,在此示例中,編輯表單中的:標記字段將填充爲:
[#<Tag id: 298, name: "Wondering">]
不是
Wondering
第二個需要注意的是,我不能爲這些協會的自定義字段。例如,而不是有一個:tags字段我有一個:tag_list字段。在創建文章時,用戶在此輸入一些標籤。在編輯時,:標籤不會被名稱映射並放入tag_list字段。我總是可以將此行添加到控制器:
@article.tag_list = @article.tags.map(&:name)
但是我正在尋找一個更好的解決方案,因爲我有很多字段,我會寫這一點,這似乎是浪費代碼行。
任何人都可以幫忙嗎?
嘿,我很樂意將此作爲答案..但有一個問題。在他的tag_names定義中,他使用「at-sign」tag_names || tags.map ..我試圖實現這一點,但「at-sign」tag_names總是零(從表單提交沒有承認f.text_field:tag_names使「at-sign」tag_names變量。「at-sign 「tag_names被定義? – jay 2012-01-07 19:31:34
'attr_writer:tag_names' – Azolo 2012-01-07 19:38:23