2011-12-19 91 views
0

這是我的第一個rails項目和第一個rails帖子,所以我可能無法表達自己。我環顧四周,但無法找到我認爲簡單的答案。Ruby on Rails:button_to使用絕對路徑,但我需要相對的

問題是我有一個Rails應用程序向用戶呈現一個按鈕,並且表單操作具有以http://開頭的完整路徑,即使用戶使用SSL,所以如果他們單擊按鈕他們看到數據未被加密的愚蠢警告。我想表單動作網址開頭爲/ ......下面是生成按鈕的代碼(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。

任何信息將非常有幫助。

非常感謝。

回答

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
mail_in_payment_new_org_contact_student_application_app_fee_payment_url(@org, current_user.contact, current_application) 

是一個Rails助手,可以生成完整的url。如果你想「URL」

mail_in_payment_new_org_contact_student_application_app_fee_payment_path(@org, current_user.contact, current_application) 

的相對URL中使用「路徑」 unstead正在發生的事情的細節是深埋,但它是根據你的config/routes.rb中文件。