2014-10-28 62 views
0

我有一個導軌和嵌套視圖形成:使用fields_for創建在控制器中的形式對象

new.html.erb

<%= form_for @leads do |f| %> 
    <%= f.text_field :some_field %> 
    <%= f.fields_for :tickets do |ticket_builder| %> 
    <%= render 'tickets', f: ticket_builder %> 
    <% end %> 
<% end %> 

_tickets.html.erb

f.text_field :some_other_field 

有在這種情況下,我需要通過ajax添加票部分,因此我需要通過控制器操作呈現該部分:

def add_ticket 
    resp = {} 

    resp[:html_options] = render_to_string(partial: "tickets", locals: { f: nil }) 

    render text: resp.to_json 
    end 

很明顯,由於傳遞給部分的f變量爲零,所以它應該是一個表單構建器。

如何將表單構建器從控制器傳遞給部分?

+0

爲事實 - 你不能沒有掛機後其未來的開發會罵你:)取決於你想要的是另一種更好的解決方案,以用戶的實現它。例如,如果你想動態地添加票據,你可以試試這個gem https://github.com/nathanvda/cocoon – 2014-10-28 21:36:57

回答

0

簡單地把你的控制器:

include ActionView::Helpers::FormHelper 
+0

這可能會起作用,但我在railscasts中使用了名爲嵌套模型的技術,它允許我粘貼表單內容在html選項字段中,所以我以後可以在不使用ajax請求的情況下檢索它。 – Donato 2014-10-29 19:48:16

+0

恩,對你有好處。我剛剛回答了這個問題。 – blelump 2014-10-29 19:54:21

+0

這是真的,我只是把它標記爲正確的,即使我使用了不同的技術。 – Donato 2014-10-29 20:58:33

相關問題