Вы передаете @form
как f
при частичном просмотре.Скорее всего, params[:form]
- это строка.Вот несколько способов решения этой проблемы.
1.Воссоздайте объект формы
Поскольку у вас нет объекта f
из вашего предыдущего запроса, вы можете создать его заново для создания фрагмента html.Вместо того, чтобы извлекать объект формы из params
, который я считаю невозможным, вы можете создать новый объект формы, используя новый объект Event
.Я не проверял это в рельсах, но это должно дать вам идею.
def add_user
@event = Event.new
respond_to do |format|
format.js {render 'add_user'}
end
end
Установить @user
в качестве локальных
$('#event_form_area').append('<%= j render partial: "events/user", locals: {event: @event} %>');
Тогдавоссоздать объект формы
# partial
<% form_for event do |f| %>
<%= f.input_field :user_name %>
<% end %>
Обратите внимание на использование <%
вместо <%=
в первой строке.Мы не хотим иметь еще один <form>
элемент.
Тогда все готово.Этот код должен генерировать фрагменты HTML
или 2.Используйте обычный html
В своей части переписать свой код в простой элемент HTML.Например
<input class="form-control" type="text" name="event[user_name]" id="event_user_name">