Ruby on Rails: button_to использует абсолютный путь, но мне нужен относительный - PullRequest
0 голосов
/ 20 декабря 2011

Это мой первый проект рельсов и первый пост рельсов, так что у меня могут быть проблемы с самовыражением.Я огляделся, но не смог найти ответ на то, что, как мне показалось, было бы простым.

Проблема в том, что у меня есть приложение rails, которое представляет пользователю кнопку, а действие формы завершено.путь начинается с http://,, даже если пользователь использует SSL, поэтому, если он нажимает кнопку, он видит глупое предупреждение о том, что данные не зашифрованы.Я хочу, чтобы URL-адрес действия формы начинался с / ... Вот код (HAML), который генерирует кнопку:

%li= button_to "Pay by Mail", mail_in_payment_new_org_contact_student_application_app_fee_payment_url(@org, current_user.contact, current_application), :method => "get"

К сожалению, я погружаюсь в проект и язык, с которым я не знакомЯ также никогда не видел HAML раньшеЯ не совсем понимаю этот ресурс: mail_in_payment_new_org_contact_student_application_app_fee_payment, и при этом я не понимаю, как rails создает URL-адрес на его основе.

Любая информация будет очень полезна.

Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 20 декабря 2011

Используйте

mail_in_payment_new_org_contact_student_application_app_fee_payment_path

вместо

mail_in_payment_new_org_contact_student_application_app_fee_payment_url

Короче говоря, _url помощник является абсолютным, _path относительным. Вы можете прочитать о них здесь . Если вы опубликуете содержимое config / rout.rb , я постараюсь объяснить, из чего состоит этот вспомогательный метод.

1 голос
/ 20 декабря 2011
mail_in_payment_new_org_contact_student_application_app_fee_payment_url(@org, current_user.contact, current_application)

- это помощник Rails, который генерирует полный URL.Если вы хотите, чтобы относительный URL-адрес использовал 'path' вместо 'url'

mail_in_payment_new_org_contact_student_application_app_fee_payment_path(@org, current_user.contact, current_application)

Подробная информация о том, что происходит, глубоко скрыта, но основана на вашем файле config / rout.rb.

...