Передача параметров в Ruby on Rails (2) Контроллеры - PullRequest
1 голос
/ 15 января 2011

У меня проблемы с передачей параметров (в данном случае @plan_id) на следующую страницу (new_user_url).

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: 

Любые указатели на то, что я делаю неправильно, будут высоко оценены.

Спасибо!

1 Ответ

2 голосов
/ 15 января 2011

Как вы написали свой вызов redirect_to, вы передаете параметр plan_id аргументу response_status. Посмотрите redirect_to документацию:

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

Вы, вероятно, хотели написать:

redirect_to new_user_url(:plan_id => @plan_id)
...