У меня длинная форма, которая автоматически заполняется информацией из нашей базы данных (на основе частичной информации, предоставленной пользователем). Когда пользователь проверяет информацию и повторно передает форму, информация должна быть сохранена как пользователи. Форма - qualifying_events - является частью, которая находится в представлении/общей папке. Данные, которые автоматически обрабатываются, обрабатываются квалификационным_events_controller как часть метода create. Частичная информация представлена для проверки на странице просмотров/пользователей, отображаемой пользовательским контроллером. Исходная, частичная информация, вводимая пользователем - в аналогичной частичной части на той же странице - правильно сохраняется. Вот вершина формы:form_for создает скорее, чем сообщение, используя rails
<form class="form-inline">
<%= form_for(@qualifying_event) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div >
<div class="form-group col-sm-12 text-center" style="margin-bottom: 5px;"><h5>
<div>
<li style="list-style-type: none; float: left; display: none; visibility: hidden;">
<%= current_user %>
</li>
</div>
<div>
<li style="list-style-type: none; float: left;">
<%= f.label :class_date %><br/>
<%= f.text_area :class_date, autofocus: true %>
</li>
</div>
Вот сообщение об ошибке:
No route matches [GET] "/qualifying_events"
Вот что я пробовал:
1. Явное добавление маршрута в файл конфигурации/маршрутов, хотя это уже показал, если я побежал реки маршруты:
post 'qualifying_events_path' => 'qualifying_events#create'
2. Изменение form_for языка явно вызвать " post ':
<%= form_for(@qualifying_event, url: qualifying_events_path, method: => post) do |f| %>
У меня все еще появляется то же сообщение об ошибке. Поскольку у меня есть другие формы, которые сохраняются в базе данных с одним и тем же кодом, я должен предположить, что что-то меняется, когда форма заполняется из базы данных, и вы хотите повторно сохранить эту информацию. Я использую DEViSE камень, так что я смотрел на регистрации # редактирования кода, надеясь, что я мог бы следовать формату:
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
К сожалению, этот подход не работает.
Для «полноты», вот код qualifying_events_controller:
def create
@user = current_user
@qualifying_event = current_user.qualifying_events.build(qualifying_event_params)
if @qualifying_event.validated.nil?
# Match partial course information from current_user with records in table
# Get partial record's information
active_date = @qualifying_event.class_date
active_course = @qualifying_event.course_id
active_sponsor = @qualifying_event.sponsor_name
# Match on class_date, course_id, and sponsor_name
@qualifying_event = QualifyingEvent.new
@qualifying_event.assign_attributes(QualifyingEvent.
where("(class_date = :class_date AND course_id = :course_id)
OR (class_date = :class_date AND sponsor_name = :sponsor_name)
OR (course_id = :course_id AND sponsor_name = :sponsor_name)",
{class_date: active_date, course_id: active_course,
sponsor_name: active_sponsor}).first.attributes)
# render to confirmation form/form for completion
flash[:success] = "Qualifying Event saved for verification!"
respond_to do |format|
format.html {render 'users/user_dashboard' }
end
else
# if the record is complete
@qualifying_event.save
flash[:success] = "Qualifying Event created!"
redirect_to user_dashboard_path
end
Там может быть ошибка в «другое» заявление. Я еще не добавил код для проверки наличия всей необходимой информации и т. Д.
Я могу сохранить и получить информацию из базы данных, однако повторная отправка отредактированных информационных вызовов «get», после.' Что мне не хватает? Заранее спасибо.
Спасибо. Это была проблема. – user3763682