1

我需要的块的respond_to不渲染new.html.erb如果打了个比方不是由我创造了另一个观点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 

回答

1

漂亮之外的另一个观点简单。只要认为是对控制器的默认目录:

respond_to do |format| 
    format.html render 'new' 
    format.json { render json: @user } 
end 

如果没有,你需要告诉它哪个目录:这里

respond_to do |format| 
    format.html render 'users/new' 
    format.json { render json: @user } 
end 

更多文档:http://guides.rubyonrails.org/layouts_and_rendering.html

+0

非常感谢NickM – 2014-12-07 15:50:13

+0

没问题。随意接受;) – 2014-12-07 15:50:44

0

有很多方法可以做到这一点....

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