2016-07-16 68 views
0

是否可以使用輸入作爲「的link_to」的路徑?使用導軌爲路徑變量

<% @call.each do |call| %> 
    <%= call.title %> 
    <%= link_to "Path Text", call_path(call) %> 
<% end %> 

上述代碼將進入呼叫顯示頁面。如果在創建表單我對path一個輸入,這是一個string。是否有可能進入「call_path(電話)」,然後使用該輸入作爲link_to路徑,例如:

<% @call.each do |call| %> 
    <%= call.title %> 
    <%= link_to "Path Text", call.path %> 
<% end %> 

我已經試過這個代碼和鏈接輸出,以「call_path的URL(調用鏈接)「

在呼叫模型中,我在創建模型時定義了path:string,並且在控制器中的params的permit語句中有:path

+0

你不能從客戶端(瀏覽器)中調用Ruby(服務器端)。你能*做的是用一個Ruby調用(所有服務器端)的結果來渲染href,例如'Path Text' –

+0

@DaveNewton,所以不可能將保存在變量中的輸入用作路徑? – AJDEV

+0

我不清楚你在問什麼。 –

回答

0

目前還不清楚你問什麼,但如果你的意思做的是:

  1. 用戶點擊使用特定的輸入變量
在服務器上執行
  • 一些操作的鏈接

    那麼你可以做的是建立在對一些控制器,發生在你需要的任何參數輸入一個新的動作你的路由文件POST路線,並執行服務器上的行動,並適當響應。

    或者,如果你的意思是,當一些投入發言權文本字段中的用戶類型,並且要動態地更改鏈接,你可能想使用JavaScript來做到這一點的客戶端。像這樣的東西(我使用jQuery):

    $("#textfield").on('input', function(e) { 
        var text = $(this).val(); 
        // TODO: sanitize 'text' input 
        $("#link").attr('href', text); 
    }); 
    

    我要提醒你,如果這是你想要做什麼,你應該驗證輸入用戶輸入的,因爲它爲創建載體腳本注入攻擊。