2016-07-16 1 views
0

"link_to"의 경로로 입력을 사용할 수 있습니까?rails 변수를 경로로 사용

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

위의 코드는 통화 표시 페이지로 이동합니다. 작성 양식에 path에 대한 입력이 있고 string 인 경우

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

이 코드와 call_path "의 URL (호출로 링크로 링크 출력을 시도 : 예, 그것은"call_path (호출) "를 입력 할 수 있습니다 다음 link_to 경로로 그 입력을 사용하여) "

모델을 만들 때 호출 모델에서 path:string을 정의했으며 컨트롤러에 params의 허가 문에 :path이 있습니다.

+0

클라이언트 측 (브라우저)에서 Ruby (서버 측)를 호출 할 수 없습니다. * 할 수있는 일은 href를 Ruby 호출의 결과 (모든 서버 측)로 렌더링하는 것입니다 (예 : '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); 
}); 

나는 이것이 당신이 뭘하려는 건지 경우, 그것은을위한 벡터를 생성하기 때문에, 당신은 사용자가 입력하는 입력의 유효성을 검사해야한다고 경고한다 스크립트 주입 공격.

관련 문제