简体   繁体   English

创建或保存数据后,重定向到索引而不是显示

[英]redirect to index instead of show after create or save data

I want to go to the index view directly after entering (create/new/update) the data. 我想在输入(创建/新建/更新)数据后直接转到索引视图。 Right now after entering the data the show view is displayed. 输入数据后立即显示节目视图。 I tried to change render: show into render: index, but this did not work. 我试图改变渲染:show into render:index,但这不起作用。

This is my controller: 这是我的控制器:

class ElectricityGenerationsController < ApplicationController
  before_action :logged_in_user
  before_action :set_electricity_generation, only: [:show, :edit, :update, :destroy]`

  # GET /electricity_generations
  # GET /electricity_generations.json
  def index
    @scenario_selection = Selection.find_by_resource("scenario").name
    @selected_scenarios = Selection.find_by_resource("scenario").scenario_id
    @electricity_generations = ElectricityGeneration.where(scenario_id: @selected_scenarios)
    respond_to do |format|
      format.html #index.html.erb
      format.json {render json: @electricity_generations}
    end
  end

  # GET /electricity_generations/1
  # GET /electricity_generations/1.json
  def show
    @scenario_selections = Selection.find_by_resource("scenario").name
    @electricity_generation = ElectricityGeneration.find(params[:id])
    respond_to do |format|
      format.html #show.html.erb
      format.json {render json: @electricity_generations}
    end
  end

  # GET /electricity_generations/new
  def new
    @scenario_selections = Selection.find_by_resource("scenario").name
    @electricity_generation = ElectricityGeneration.new
    respond_to do |format|
      format.html #new.html.erb
      format.json {render json: @electricity_generations}
    end
  end

  # GET /electricity_generations/1/edit
  def edit
    @scenario_selections = Selection.find_by_resource("scenario").name
    @electricity_generation = ElectricityGeneration.find(params[:id])
  end

  # POST /electricity_generations
  # POST /electricity_generations.json
  def create
    @selected_scenarios = Selection.find_by_resource("scenario").scenario_id
    @electricity_generation = ElectricityGeneration.new(electricity_generation_params)
    @electricity_generation.id = ElectricityGeneration.last.id + 1
    @electricity_generation.scenario_id = Selection.find_by_resource("scenario").scenario_id
    @scenario_selections = Selection.find_by_resource("scenario").name
    @electricity_generation.user_id = current_user.id
    respond_to do |format|
      if @electricity_generation.save
        format.html { redirect_to @electricity_generation, notice: 'Electricity Generation Information was successfully created.' }
        format.json { render :show, status: :created, location: @electricity_generation }
      else
        format.html { render :new }
        format.json { render json: @electricity_generation.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /electricity_generations/1
  # PATCH/PUT /electricity_generations/1.json
  def update
    @scenario_selections = Selection.find_by_resource("scenario").name
    @electricity_generation.user_id = current_user.id
    respond_to do |format|
      if @electricity_generation.update(electricity_generation_params)
        format.html { redirect_to @electricity_generation, notice: 'Electricity Generation was successfully updated.' }
        format.json { render :show, status: :ok, location: @electricity_generation }
      else
        format.html { render :edit }
        format.json { render json: @electricity_generation.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /electricity_generations/1
  # DELETE /electricity_generations/1.json
  def destroy
    @scenario_selections = Selection.find_by_resource("scenario").name
    @electricity_generation.destroy
    respond_to do |format|
      format.html { redirect_to electricity_generations_url, notice: 'Electricity generation was successfully destroyed.' }
      format.json { head :no_content }
    end
  end


  private
    # Use callbacks to share common setup or constraints between actions.
    def set_electricity_generation
      @electricity_generation = ElectricityGeneration.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def electricity_generation_params
      params.require(:electricity_generation).permit(:user_id, :annual_solar_irradiation, :asi_max, :asi_min, :scenario_id)
    end
end

Only redirects to the root path, like so; 只重定向到根路径,就像这样;

    format.html { redirect_to root_path, notice: 'My Notice.' }

Hope this helps. 希望这可以帮助。

只需使用redirect_to %url_helper_to_your_index%而不是render :show

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM