J'ai besoin du bloc respond_to pas rendu à new.html.erb sinon une autre vue créée par moi appelée par exemple new_form.html.erb
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @user }
end
end
Réponses:
1 pour la réponse № 1Assez simple. Tant que la vue est dans le répertoire par défaut du contrôleur:
respond_to do |format|
format.html render "new"
format.json { render json: @user }
end
Si non, vous devez lui indiquer quel répertoire:
respond_to do |format|
format.html render "users/new"
format.json { render json: @user }
end
Plus de documents ici: http://guides.rubyonrails.org/layouts_and_rendering.html
0 pour la réponse № 2
Il y a plusieurs façons de le faire ....
##FOR HTML CALLS
format.html { render "new"}
format.html { render "shared/new"}
##FOR JS CALLS
format.js { render "new"}
format.js { render "shared/new"}
##pass variable to the view
format.js { render "shared/new",:locals=>{:type=>"User"}}
##OR you can also try redirect in some rare cases WITHOUT respond_to block
redirect_to users_path(params[:id])