#ruby-on-rails
#ruby-on-rails
Вопрос:
Это кажется простым, но я ничего не могу найти по этому поводу.
У меня есть ссылка, чтобы запросить встречу с другим пользователем. В результате создается URL, подобный этому:
http://localhost:3000/meetings/new?requestee_id=5
Идентификатор получателя запроса и другая информация в форме передаются в MeetingController:
def create
requestor = current_user
@meeting_with_params = meeting_params
@meeting = Meeting.new(meeting_params)
respond_to do |format|
if @meeting.save
format.html { redirect_to home_url, notice: 'Your lex was successfully requested! Click Plan Meeting ' }
format.json { render :show, status: :created, location: @meeting }
else
format.html { render :new, params: @meeting_with_params }
format.json { render json: @meeting.errors, status: :unprocessable_entity }
end
end
end
При наличии ошибок URL-адрес теперь выглядит следующим образом:
http://localhost:3000/meetings
это означает, что форма никогда не будет отправлена, поскольку requestee_id отсутствует.
Как правильно заставить пользователя видеть ошибки, но параметры URL никогда не сбрасываются? Спасибо!
Комментарии:
1. Я не понимаю последнюю часть этого предложения «Как правильно заставить пользователя видеть ошибки, но параметры URL никогда не сбрасываются?»
2. Вы можете сделать это с помощью ajax submit, но вам нужно показать ошибку из js.
3. @CdotStrifeVII вопрос в том, как можно отобразить ошибки, сохранив при этом URL-адрес прежним. Прямо сейчас он удаляет параметры из URL
4. @prakashS Есть ли способ rails/
5. @ThomasR.Koll это мой вопрос. Как это сделать с помощью rails, а не ajax.
Ответ №1:
Вы можете сделать это:
format.html { render "path/to/new?{@meeting_with_params.to_param}" }
или
Вы можете использовать помощники пути rails. Вы можете rake routes
и найти вспомогательный путь вашего URL (он выглядит примерно так: edit_user_path, new_user_path)
format.html { render new_meeting_path(@meeting_with_params) }
Комментарии:
1. @gwalshington помогает ли это?
Ответ №2:
Поскольку вы можете использовать ajax для этой проверки [https://github.com/rails/jquery-ujs](jquery-ujs)
, ваш тег формы должен выглядеть примерно так:
form_for @meeting, data: {remote: true} ...