2013-01-14 115 views
0

我正在嘗試製作一個表單來創建新產品。在頁面的頂部,我希望人們能夠選擇它的產品類型,並且完成一個表格的產品將在下面填充正確的字段(並且在任何時候都可以更改產品類型)Dynamic Partials

我的假設是,我應該使用jQuery和AJAX來呈現不同的部分爲每一個 - 那就是,如果用戶選擇一個產品類型,則相應的形式加載具有無需刷新頁面的適當形式的部分。

就像在我以前的帖子,我的第一個問題就是要確保這是在Rails社區可以接受的。

然而,諷刺的是我的問題是不是與AJAX或jQuery的,但部分。我創建了一個局部的標題爲「_shirt.html.erb」,看起來像下面的「戰袍」:

<% form_for(:shirt, :url => { :action => 'save_to_session' }) do |f| %> 
<table summary="Shirt form fields"> 
<tr>  
    <th>Shirt Size S:</th> 
</tr> 
<tr> 
    <td><%= f.select(:size_s, 0..99) %> </td> 
</tr> 
</table> 

    <%= submit_tag("Create Item") %> 
<% end %> 

,並在我看來,我只是想呈現局部與

<%= render "shirt" %> 

但當頁面加載時,它不會加載表單。除了佈局的鏈接外,主體是空的。我在網上查找,無法找到這可能是錯誤的,有什麼想法?

回答

1

解析表單這種方式是沒有必要的「傳統」,但如果你的應用需要這個功能,那麼我不會讓軌道抱着你到了一定的功能。在我看來,你當然應該儘可能遵循rails慣例,但不應該讓它成爲一個限制因素。

至於形式不渲染,我相信,你只需要一個=添加到窗體標籤所以它應該是:的

<%= form_for(:shirt, :url => { :action => 'save_to_session' }) do |f| %> 

代替

<% form_for(:shirt, :url => { :action => 'save_to_session' }) do |f| %> 

希望這有助於!

+0

哈哈哈哇,謝謝。我花了很長時間才認爲這是我的表格出了問題......然而,這很簡單!謝謝! – cadlac

+0

沒問題,有時只需要第二雙眼睛:) –

0

如果你想渲染一個部分,你不必指定:partial關鍵字?

<%= render :partial => "shirt" %> 
+0

這是我原來的想法,但根據這裏的文檔,你不要http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials 無論如何,它以任何方式返回相同的結果 – cadlac