/ / Comment rendre une autre vue que la vue par défaut - ruby-on-rails, ruby, ruby-on-rails-3, ruby-on-rails-4, ruby-on-rails-3.2

Comment rendre à une autre vue que la vue par défaut - ruby-on-rails, ruby, ruby-sur-rails-3, ruby-on-rails-4, ruby-on-rails-3.2

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 № 1

Assez 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])