2016-10-20 3 views
0

これは簡単ですが、何も見つかりません。Railsエラーがフォームパラメータをリセットします

他のユーザーとのミーティングをリクエストするためのリンクがあります。これは、このようなURLを生成します。

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 

エラーがある場合、URLは次のようになります。

http://localhost:3000/meetings 

これは、requestee_idが存在しないためにフォームが送信されないことを意味します。

ユーザにエラーが表示される正しい方法はありますが、urlパラメータはリセットされません。 ありがとう!

+0

私はこの文の最後の部分を理解していない 「何が、ユーザーがエラーを確認持つことが正しい方法ですが、URLのparamsがリセットされることはありません?」 –

+0

あなたはajax submitによってそれを行うことができますが、jsからエラーを表示する必要があります。 – Zero

+0

@CdotStrifeVII質問は、どのようにエラーを表示することができますが、URLを同じに保つことです。今すぐ、それは彼のurlからparamsを取る – gwalshington

答えて

0

あなたはこれを行うことができます:あなたはレールパスヘルパーを使用することができます

format.html { render "path/to/new?{@meeting_with_params.to_param}" }

OR

を。

format.html { render new_meeting_path(@meeting_with_params) }

+0

@gwalshingtonはこの助けをしますか? –

0

あなたは、このチェックアウト[https://github.com/rails/jquery-ujs](jquery-ujs)のためにAJAXを使用しても大丈夫なので、フォームタグは、このような何かを見て持っている:あなたはrake routesことができ、あなたのURLのヘルパーのパスを見つける(edit_user_path、new_user_pathそれは次のようになります) :

form_for @meeting, data: {remote: true} ... 
関連する問題