2

私は3つのhtmlページを持っています。

  • 最初のページでは、データのリストを表示します。
  • 2 ページ目では、リストの特定の要素のデータを表示します。
  • 3 番目のページでは、ユーザーはリストの特定の要素のデータを編集できます。

ユーザーが「フォーム」を送信したときに、2 ページ目でユーザーをリダイレクトするにはどうすればよいですか? 私はこのようにしてみました:

render :action => "show_details",:id=>params[:id]

できます。リンクは正しいです。しかし、ページを更新しないとページが開かれません。

アップデート I

レポート コントローラーのこのアクションでコードを記述します。

 def setFixed
    rs=Report.find(params[:id])
    rs.state ="1"
    rs.save
    render :action => "show_details",:id=>params[:id]
  end

UPDATE II レポート コントローラ コード:

class ReportsController < ApplicationController

  before_filter :authenticate_user, :only => [:index,:show,:show_details,:new]

  def stateDialog
    render :stateDialog, :current_state=>params[:current_state]
  end

  def setFixed
    rs=Report.find(params[:id])
    rs.state ="1"
    rs.save
    render :action=>"show_details",:id=>params[:id]
  end

  def setNotFixed
    rs=Report.find(params[:id])
    rs.state ="0"
    rs.save
    render :action=>"show_details",:id=>params[:id]
  end

  def edit
    @report=Report.find(params[:id])
  end

  def update
    @report = Report.find(params[:id])
      if @report.update_attributes(params[:report])
        flash[:notice]=''
        render :action=>"show_details",:id=>params[:id]
      else
        flash[:notice]=''
        render :action=>"show_details",:id=>params[:id]
      end
  end

  def deleteDialog
    render "deleteDialog"
  end

  def focus_maps
    render "focus_maps"
  end

  def delete
    Report.find(params[:id]).destroy
    render "show"
  end

  def index
    @report=Report.new
  end

  def logged
    render "new"
  end

  def show
    render params[:page]
  end

  def new
    @report=Report.new
  end

  def show_details
    render "show_details"
  end


  def create
    @report=Report.new( params[:report] )

    if @report.save
       flash[:notice]='Segnalazione avvenuta!'
    else
       flash[:notice]='Impossibile sottoporre la segnalazione!'
    end

    render "show"

  end
end
4

2 に答える 2

7

render次のように、呼び出す前にパラメーターを入力する必要があるというアドバイスを見つけました。

@id = params[:id]
render :action => 'show_details'

この解決策は私にとってはうまくいきます、試してみてください

于 2015-07-02T06:43:48.353 に答える