2013-07-21 96 views
0

我對rails非常陌生,對於一個簡單的頁面有點問題,我正在爲學習而拼湊在一起,我希望有人可能會對修復或更好的方法提出一些建議。基於Rails協會的建築形式

本質上,我有一個便箋的概念。每個pad有has_many任務和has_many註釋。在演出中,我想要兩種獨立的形式。一個用於添加任務,另一個用於添加註釋。問題是,我建的形式,像這樣:

<%= form_for([@pad, @pad.tasks.build]) do |f| %> 
    <%= f.text_field :text %> <%= f.submit %> 
<% end %> 

現在,既然我已經叫.build,當我再打下面的代碼,以使其始終呈現一個額外的,空的記錄在列表中的任務。

<ul> 
    <%= render @pad.tasks %> 
</ul> 

我想過使用嵌套表格,但這似乎需要我用PadsController ::更新,而不是TasksController:創建一個像我想。

這種情況下適當的方法是什麼?對於鐵桿來說如此新(從昨天開始),恐怕我錯過了一些明顯的東西。

編輯:我將源添加到github存儲庫。正如我所說,這僅僅是一個學習項目。 https://github.com/douglinley/scratchpad

回答

0

如果你只是想沒有它被添加到收藏@pad.tasks一個新的任務,我相信你可以做@pad.tasks.new代替@pad.tasks.build(其中它添加到集合)。

更多關於構建VS新,退房 Build vs new in Rails 3

+0

感謝您的迴應。根據那篇文章,似乎Build和New現在幾乎是一樣的(3.2.3版本),並且他們都將新記錄添加到集合中。這是我想要避免的。 – spacemunkee

0

所以,這比我想象的要容易得多。我不是在集合上調用new,而是爲表單創建了一個新對象。示例如下:

<%= form_for([@pad, Task.new]) do |f| %> 
    <%= f.text_field :text %> <%= f.submit %> 
<% end %>