这看似简单,但我找不到任何内容。
我有一个链接请求与其他用户会面。这会产生这样的网址:
http://localhost:3000/meetings/new?requestee_id=5
被邀请者id和表单中的其他信息被传递给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
如果有错误,网址现在看起来像这样:
http://localhost:3000/meetings
这意味着表单永远不会提交,因为requestedtee_id不存在。
让用户看到错误的正确方法是什么,但url params永远不会被重置? 谢谢!
答案 0 :(得分:0)
你可以这样做:
format.html { render "path/to/new?{@meeting_with_params.to_param}" }
OR
您可以使用rails path helpers。你可以rake routes
找到你的url帮助路径(它看起来像这样:edit_user_path,new_user_path)
format.html { render new_meeting_path(@meeting_with_params) }
答案 1 :(得分:0)
由于您可以使用ajax进行此结帐[https://github.com/rails/jquery-ujs](jquery-ujs)
,因此您的表单标记必须如下所示:
form_for @meeting, data: {remote: true} ...