2012-06-27 2 views
1

Я использую Sslrequirements.rb (и модифицировал его в соответствии с моими потребностями), теперь, когда страница переходит на HTTP-HTTPS, она добавляет дополнительные параметры. Вопрос в том, как сохранить правильные параметры, которые передаются, и как я могу убедиться, что контроллер и имя действия, которое передается, не совпадают с URL-адресом.Rails - HTTP to HTTPS (или наоборот) перенаправление добавления дополнительных параметров

Когда следующий блок вызывается

redirect_to :protocol => "https://", :controller => controller_name.to_sym, :action => action_name.to_sym, :params => params 

Регистрация страницы быть вызвана с этими параметрами.

https://mydomain.com/signup?account=free&action=new&controller=users 

Как избавиться от &action=new и controller=users от вызываемого URL.

Я использую Rails 3.2.6.

ответ

0

После долгих исследований я обнаружил:

request.query_parameters 

Это устраняет проблему.

1

Линия, которая преобразует to_sym не было преобразование строки в с

«ActionName»

Попробуйте удалить имя контроллера и так, что ваш код будет выглядеть примерно так

redirect_to :protocol => "https://", :action => 'action_name', :params => [params:id] 

Согласно рельсовым документам here, перенаправления обрабатывают ваш второй параметр как код статуса URL.

+0

: контроллер &: деятельность - хорошо. Это: params, который вызывает проблему. –

1

Как об этом ...

redirect_to url_for params.merge({:protocol => 'https://'}). 
    except(:controller_name, :action_name, ...) 
+0

the: params вызывает проблему. –

+0

@ScottDeutsch Отредактировал свой ответ - неправильно понял то, что вы искали. –

Смежные вопросы