2012-07-07 102 views
0

形式我有一個表格在/players/new.html.erb包括使用Ruby單獨的文件on Rails的

<%= form_for(@player) do |f| %> 
    ... 
<% end %> 

,我想在主頁包括創建一個新的Player

如果我只是複製粘貼整個窗體我得到這個錯誤:undefined method MODEL_NAME」的NilClass:Class`

我可以包括在iframe

<div> 
    <iframe src=../players/new.html> 
</div> 

形式,但這顯示了整個帶頁眉和頁腳的頁面。

如何包含表單,理想情況下直接從文件(即不復制粘貼)?

回答

2

form_for至少需要@player在場

,如果你真的想包括在您的主頁該表單,然後在你的家控制器動作初始化新Player實例:

@player = Player.new 

但是你必須請注意,PlayerController(或您創建該表單的任何控制器)的視圖可以依靠訪問PlayerHelper的幫助器方法,因此您可能還需要在HomeHelper

+0

輝煌,謝謝! – Michael 2012-07-07 14:29:03

+0

...只是如果主頁是索引並且頻繁訪問,則您每次都實例化播放器。實際上處理表單可能會變得棘手,因爲您現在可能需要修改索引方法來處理玩家創建。所以我會讓表單的行爲成爲一種不同的方法,創建玩家並將其重定向回索引。 – 2012-07-07 14:33:23

1

我會將字段移動到一個局部區域,並重新使用主頁和其他頁面上的字段。請記住,它將在form_or中設置url以使其正常工作。