2011-01-15 15 views
1

パラメータ(この場合は@plan_id)を次のページ(new_user_url)に渡す際に問題があります。Ruby on Railsでパラメータを渡す(2)コントローラ

class SubscriptionsController < ApplicationController 
    #before_filter :require_admin!, :except => [:show] 
    skip_before_filter :authenticate_user!, :only => [ :create ] 

    def create 
    @plan_id = params[:plan] 
    if current_user.nil? 
     redirect_to new_user_url, :plan_id => @plan_id  
    end 
    end 
end 



class UsersController < ApplicationController 
    skip_before_filter :authenticate_user!, :only => [ :new, :create ] 
    before_filter :require_admin!, :only => [ :index, :show, :destroy, :signin_as ] 

    def new 
    logger.debug params 
    @user = User.new 
    @plan_id = params[:plan_id] 
    logger.debug "-------------- plan id: #{@plan_id}" 
    @plan = Plan.plan @plan_id 
    end 

私がデバッグメッセージに表示することは、私が間違ってやっているものに

Processing UsersController#new (for 127.0.0.1 at 2011-01-14 16:07:50) [GET] 
    Parameters: {"subdomains"=>["secure"], "controller"=>"users", "action"=>"new"} 
{"subdomains"=>["secure"], "controller"=>"users", "action"=>"new"} 
-------------- plan id: 

任意のポインタをいただければ幸いです。

ありがとうございます!

答えて

2

redirect_toコールを書き込んだ方法では、plan_idパラメータをresponse_status引数に渡しています。 redirect_toのドキュメントを見てください:

redirect_to(options = {}, response_status = {}) 

おそらく、書くためのもの:

redirect_to new_user_url(:plan_id => @plan_id) 
関連する問題