0

這是一個後續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) 

但是我正在尋找一個更好的解決方案,因爲我有很多字段,我會寫這一點,這似乎是浪費代碼行。

任何人都可以幫忙嗎?

回答

1

看看這個Railscast Virtual Attributes。我很確定這會讓你的生活更輕鬆。

其實,這幾乎是你的問題。瑞安貝茨幹得好。

+0

嘿,我很樂意將此作爲答案..但有一個問題。在他的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

+1

'attr_writer:tag_names' – Azolo 2012-01-07 19:38:23

相關問題