2016-06-08 5 views
0

버튼 클릭으로 특정 기능을 호출하는 레일 앱에서 루비를 빌드하려고합니다. 내가 도우미 모듈에 함수를 넣고 onclick 이벤트와 함께 함수를 호출합니다. 내 문제는 ERB 코드가 어쨌든 실행되는 것처럼 보입니다. 단추를 클릭하지 않아도 실행됩니다. 나는 제대로 작동하는 경고에 의해 함수에 대한 호출을 대체하여 버튼을 테스트했다. 버튼을 클릭했을 때만 팝업되었지만 html 내부의 혼합 erb가 자동으로 실행되는 것처럼 보였다. 또한 onclick 이벤트에 의해 호출 된 자바 스크립트 함수를 추가하여 중간 단계를 통과하려고했지만 코드가 실행되는대로 내 문제가 해결되지 않습니다.onclick 이벤트에서만 erb 함수를 실행합니다.

index.html.erb

<input type="button" name="test" value="Charger en masse" onclick="<%charger_photos%>"> 

module CartephotosHelper 
    def charger_photos 
    @test=Array.new 
    Dir['./public/images/*'].each do |file_name| 
     @test.push(file_name) 
     next if File.directory? file_name 
    end 
    end 
end 

onclick 이벤트

index.html.erb

<script type="text/javascript"> 
    function chargermasse(){ 
    <%charger_photos%> 
    } 
</script> 
<input type="button" name="test" value="Charger en masse" onclick="chargermasse()"> 
+0

좋은 시도지만 자바 스크립트에서 Ruby 함수를 호출 할 수는 없습니다. –

답변

1

erb 밖에서 fucntion를 호출하는 자바 스크립트를 사용하여 테스트 서버에서 실행되는 Embedded RuBy이며입니다. 0은 클라이언트 (예 : 브라우저)에서 실행됩니다. 클라이언트에서 서버 측 코드 인 erb을 실행하려고합니다. 작동하지 않습니다.

클라이언트 측에서는 onClick 이벤트가 서버를 호출하고 해당 결과를 수집하고 해당 결과로 dom을 업데이트해야합니다.

자세한 내용은 working_with_javascript_in_rails을 참조하십시오. 당신이 당신의 컨트롤러

Cartephotos_controller < ApplicationController 
    include CartephotosHelper 
end 

을에 도우미를 포함 할 수 있도록

+0

그건 의미가 있습니다, 나는 링크를 확인합니다. 감사합니다 – geraldM

+0

나는 아약스를 시도하고 그것은 효과가있다. 많이 쓸모가 많다 – geraldM

0

도우미, 당신 모델 아닌 컨트롤러에 연결되어 그들 당신은 단순히

<% charger_photos %> 
을 callyng하여 ERB에서 함수를 호출 할 수있다
+0

사실 나는 CartephotosHelper abd 호출을 추가했다. 내 문제는 버튼을 클릭했을 때만 실행된다는 것이다. – geraldM

관련 문제