Render alternate view in ruby on rails

2019-05-20 09:44发布

问题:

I have the following code in my controller

  def create
    @severity = Severity.new(params[:severity])
    if @severity.save
      flash[:notice] = "Successfully created severity"
      render 'save'
    end
  end

I am trying to get the method to render another view file other than create.js.erb however the controller always renders the default rather than the save.js.erb.

Any ideas on what could be wrong?

回答1:

def create
  @severity = Severity.new(params[:severity])
  if @severity.save
    flash[:notice] = "Successfully created severity"
    respond_to do |format|
      format.js { render :template => "/path/to/save" }
    end
  end
end

or

def create
  @severity = Severity.new(params[:severity])
  if @severity.save
    flash[:notice] = "Successfully created severity"
    respond_to do |format|
      format.js { render :file => "/path/to/save.js.erb" }
    end
  end
end

try this

def create
  @severity = Severity.new(params[:severity])
  if @severity.save
    flash[:notice] = "Successfully created severity"
  end
  render :file => "/path/to/save.js.erb"
end