2013-07-29 57 views
2

所以Rails提供這些路徑幫手,例如,我可以在一個視圖文件,有如何使用rails path helper更改域?

<%= link_to "edit", edit_admin_article_path(article) %> 

這無論是在開發環境(本地主機)或在生產環境中工作。 進行開發,它會生成URL

http://localhost:3000/admin/articles/1018/edit 

對於生產,這將產生

http://www.mydomain.com/admin/articles/1018/edit 

我的問題是:如何強制鏈接永遠是即使在開發環境中的生產環節?我可以將散列中的域值傳遞給edit_admin_article_path()調用嗎?

謝謝。

回答

-2

嘗試

<%= link_to "edit", "http://www.mydomain.com" + edit_admin_article_path(article) %> 

你當然可以重構http://www.mydomain.com部分爲一個輔助方法,這樣,如果/當你想改變它,你不必跟蹤它無處不在。

或者你可以創建一個absolute_link_to方法,只需要打包link_to方法即可完成所需的工作。

+0

沒有爲我工作(我認爲它會改善MitM漏洞,並且Rails5中有任何安全功能可以避免這種可能的安全泄漏) –

5

您可能需要url helper,它會將一個域作爲選項並創建一個fqdn。

edit_admin_article_url(article, domain: "production.tld") 

它也將拿起你可能已添加到路線中的任何限制。

+0

我會很高興看到一些文檔的鏈接,它顯示了可以使用哪些選項。我找到了實現,但它並沒有真正開導我https://github.com/rails/rails/blob/2f2c6247f5931982879bebeddf67b30f487e0811/actionpack/lib/action_dispatch/routing/route_set.rb#L134 –

+0

顯然它使用相同的選項http://apidock.com/rails/ActionDispatch/Routing/UrlFor/url_for –

+0

這似乎不適用於rails 3.2 – mkirk

相關問題