Ruby on Rails:button_to使用绝对路径,但我需要亲戚

时间:2011-12-19 20:44:20

标签: ruby-on-rails ruby haml

这是我的第一个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。

任何信息都会非常有用。

非常感谢。

2 个答案:

答案 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文件。