1

私の Rails 3 アプリでは、'show' ビューが送信されたフォームをレンダリングします。送信された同じフォームから異なるデータを表示する「情報」ビューを作成したいと思います。これは基本的に代替ショー ビューです。

これをコントローラーに入れましたが、機能しません:

  def show
    @form = Form.find(params[:id])
  end

  def info
    @form = Form.find(params[:id])
    render :layout => 'info'
  end

'show' ビューを表示するだけです。これを修正するにはどうすればよいですか?

4

2 に答える 2

0

これら 2 つのアクションは問題ないように見えるため、問題は別の場所にあるに違いありません。この例では、showアクションはビューを使用する必要がshowあり、infoアクションはビューを使用する必要がありますinfo(「情報」とも呼ばれるレイアウトを使用しますが、レイアウトとビューを混同しないように名前を変更することを検討することをお勧めします)。 .

ルートは正しく設定されていますか? モデルに「情報」ルートを設定していますFormか? すなわち

ルート.rb:

resources :forms do
    get :info
end

正しい URL に移動していますか? (この場合、http://yourhost/forms/123/info )?

于 2012-08-17T17:43:19.677 に答える
-1

あなたは呼び出すことができます

 def info
    @form = Form.find(params[:id])
     render :action => 'show'
 end

info メソッドで定義された @form インスタンス変数を使用します。適切なルートが設定されていることを確認してください。

于 2012-08-17T17:45:02.037 に答える