我想就如何建立控制器動作和形式對另一資源的,它belongs_to的視圖中創建一個資源的良好來源...我正在尋找一個好的Rails的源出於此
回答
按照正常方式設置控制器。您需要使用Rails的嵌套屬性功能。這使您可以在使用一個表單創建其父項的同時創建子對象。
This is my go-to link for nested attributes。如果您運行的是Ruby 1.9.2,則需要進行的唯一更改位於setup_person
幫助程序中。 returning
已被棄用,所以你可以把它改成:
def setup_person(person)
person.tap do |p|
p.children.build if p.children.empty?
end
end
在典型的Rails風格,這將僅僅使用標準的控制器爲每個資源的工作。
其他鏈接
http://weblog.rubyonrails.org/2009/1/26/nested-model-forms
http://jeffperrin.com/2009/06/04/rails-nested-forms-and-collection_select/
我沒有那個文檔我通常做一個網頁來源,但我創建了一個gist,其中記錄我做什麼最經常在這裏:https://gist.github.com/900241
該要點的前提是,你有一個具有許多項目角色的項目模型,並且您想要編輯項目表單中的許多項目角色。這幾乎是經典的accepts_nested_attributes_for
情況,幾乎任何討論它的頁面都會給你一個體面的寫作。問題是,我見過的解決方案總是涉及到一些嚴重雜亂的強大的JavaScript,它們逃脫了整個表單視圖,並將它扔到鏈接的onClick方法中。我最近想出了一個使用jQuery模板的更簡潔清晰的方法。
當您移動到嵌套模型時,您無需對您的ProjectsController執行任何操作。一切正常在控制器級別工作,並且您甚至不需要ProjectRolesController。 (這就是爲什麼我不打擾他們的要點。)在模型層面,這只是標準的accepts_nested_attributes_for
。它在哪裏變得有趣。
該項目形式有兩個form_for塊:一個呈現jQuery模板,另一個呈現項目角色形式。 jQuery模板反過來只是呈現項目角色形式(mmm DRY!),但是來自<script>
標記,並且具有空白項目角色。由於表單在腳本標記內,因此不會與項目表單一起提交,並且因爲腳本類型爲「text/x-jquery-tmpl」,所以這是完全有效的標記。
當用戶點擊「添加項目角色」時,它會觸發一些jQuery,它會在模板中使用表單,用當前日期替換索引(這是唯一可以識別的項目角色),以及將其附加到表單的項目角色部分的末尾。
當用戶點擊項目角色旁邊的「刪除」時,它會檢查項目角色是否爲新記錄,如果不是,則會在表單末尾附加一個「_delete」隱藏字段。無論哪種情況,它都會從DOM中刪除項目角色div。
我知道羅賓已經把你和大多數受歡迎的文章關聯起來......我仍然會推薦我的方法,它建立在這些其他方法中。這些舊文章中提到的JavaScript是我討論的非常混亂的JavaScript。 – carpeliam 2011-04-03 07:14:45
- 1. 我正在尋找一個很好的資源ownerdrawn樹視圖
- 2. 的Android +就拿我正在尋找一個源代碼,屏幕
- 3. 我正在尋找Objective-J的一些很好的文檔J
- 4. 我正在尋找一個好的html編輯器爲我的網站
- 5. 在C#和asp.net尋找一個很好的多線程資源
- 6. 在Rails中尋找更好的URL
- 7. 尋找一些關於理解Bittorrent的好書/資源?
- 8. 我正在尋找一個幫助臺解決方案開源
- 9. LL(1)語法,尋找一個好的,清晰的資源
- 10. 正在尋找一個更好的替代方案
- 11. 尋找一個開源的,基於Java的個性化引擎
- 12. 尋找一個使用ajax的rails例子,越簡單越好
- 13. 尋找一個良好的Rails維基平臺
- 14. 尋找學習ASP.NET MVC的好源碼
- 15. 尋找webforms引擎的好資源?
- 16. 正在尋找rubygem的其他資源
- 17. 尋找一個好的Mootools Javascript教程
- 18. 尋找一個很好的parse.com替代
- 19. 尋找一個好的沙箱框架
- 20. 正在尋找一個鏈接的詞
- 21. 尋找一個好的基於PHP的Web計數器
- 22. 我正在尋找關於chomp的一些澄清
- 23. 有沒有另一個位置Rails正在尋找我的irbrc配置?
- 24. 尋找一個開源的基於Python/Django的CMS?
- 25. 我正在尋找一個關於MS Excel的STDEV.S功能的代碼
- 26. 我正在尋找一個特定類型的jQuery的滑塊
- 27. 我正在尋找一個快速的方式在模板
- 28. 我正在尋找一個智能的工具提示彈出在JavaScript或jquery
- 29. 尋找一個很好的練習,以幫助我在多線程中更好
- 30. 尋找基於Linq的一個開源項目到SQL
這比嵌套資源要好嗎? – 2011-04-03 06:51:44
真的是一回事。在上面的例子中,你將有一個普通的'form_for'人,並且在這個表單中,你將能夠創建x個孩子。假設你在你的模型中有正常的關聯*和*聲明'accep_nested_attributes_for',這將創建你想要的結構。 – 2011-04-03 06:53:28
您的'setup_person'方法中定義的'person'變量在哪裏? – 2011-04-03 06:54:46