这是我的第一个rails项目和第一个rails帖子,所以我可能无法表达自己。我环顾四周但却找不到我认为简单的答案。
问题是我有一个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。
任何信息都会非常有用。
非常感谢。
答案 0 :(得分:3)
使用
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是相对的。你可以阅读它们here。如果您发布 config / routes.rb 的内容,那么我将尝试解释该辅助方法的组成。
答案 1 :(得分:1)
mail_in_payment_new_org_contact_student_application_app_fee_payment_url(@org, current_user.contact, current_application)
是一个生成完整URL的Rails助手。如果您希望相对Url使用'path'而不是'url'
mail_in_payment_new_org_contact_student_application_app_fee_payment_path(@org, current_user.contact, current_application)
正在发生的事情的细节深埋,但它基于你的config / routes.rb文件。