【发布时间】:2014-10-28 21:27:37
【问题描述】:
我有一个使用 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
很明显,由于传递给部分的 f 变量为零,它应该是一个表单构建器。
如何将表单构建器从控制器传递给部分?
【问题讨论】:
-
事实上 - 如果没有钩子,你就无法实现它,之后下一个开发人员会诅咒你:) 取决于你想要什么更好地使用另一个解决方案。例如,如果你想动态添加门票,你可以试试这个 gem github.com/nathanvda/cocoon
标签: ruby-on-rails