2016-07-16 3 views
0

"link_to"のパスとして入力を使用できますか?railsをパスとして使用

<% @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の許可ステートメントに:pathがあります。

+0

クライアント側(ブラウザ)からRuby(サーバー側)を呼び出すことはできません。あなたができることは、Ruby呼び出しの結果(すべてのサーバー側)でhrefをレンダリングすることです(たとえば、「Path Text」 –

+0

@DaveNewton)。変数に保存された入力をパスとして使用することはできません。 – AJDEV

+0

あなたが求めていることは私には分かりません。 –

答えて

0

それはあなたが求めているが、何をする意味があるならばまさに不明だ:

  1. ユーザーが
  2. いくつかのアクションは、特定の入力変数
を使用して、サーバー上で実行されたリンクをクリックします

次に、いくつかのコントローラーでパラメータとして必要な入力を取り込み、サーバー上でアクションを実行して適切に応答する新しいアクションのために、ルートファイルにPOSTルートを作成します。

もしあなたが何らかの入力をテキストフィールドに入力し、リンクを動的に変更したいのであれば、JavaScriptを使ってクライアントサイドでそれを行うとよいでしょう。このような何か(私はjQueryのを使用しています):

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

私は、これはあなたが何をしようとしてであれば、それはのためのベクトルを作成するため、ユーザーが入力した入力を検証する必要があることを警告すべきですスクリプトインジェクション攻撃。

関連する問題