6

Ryan Bates の Rails Cast on Wicked Wizard Forms を使用して、マルチステップ フォームを作成しています。メソッドが定義されていません (認証ジェムを使用していません)-そのため、パラメーターcurrent_userを渡そうとしています-残念ながら、動作させることができないようです。どんな助けでも大歓迎です!user.idredirect_to

私のユーザーコントローラーcreateメソッド

  def create
    @user = User.new(params[:user])
    respond_to do |format|
      if @user.save
        format.html { redirect_to controller: 'user_steps', id: 'user.id' }
        #format.html { redirect_to @user, notice: 'User was successfully created.' }#
        format.json { render json: @user, status: :created, location: @user }
      else
        format.html { render action: "new" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

user_stepsリダイレクト先のコントローラー:

class UserStepsController < ApplicationController
    include Wicked::Wizard
    steps :gender, :items, :brands, :final

    def show
        render_wizard
    end 
end
4

1 に答える 1

4

理想的にはredirect_to、適切なルートパスを使用する場合にメソッドが実行するパラメータとして渡す必要があります。

例:

redirect_to(user_steps_path(@user))

あなたの場合、名前付きルートがない場合は、次のようにすることができます。

redirect_to(controller: 'user_steps', id: @user.to_param)

URL では、 メソッドを使用することをお勧めしますto_paramidデータベースクエリに使用されます。

あなたが渡しているのは文字通り'user.id'パラメータです。評価されません。

于 2012-09-07T03:11:21.447 に答える