在控制器中创建一个表单对象

时间:2014-10-28 21:27:38

标签: ruby-on-rails

我有一个使用fields_for的嵌套视图的rails表单:

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

显然这会爆发,因为传递给partial的f变量是nil,它应该是一个表单构建器。

如何将表单构建器传递给控制器​​的部分?

1 个答案:

答案 0 :(得分:0)

只需插入您的控制器:

include ActionView::Helpers::FormHelper