2017-12-26 22 views
0

드롭 다운에서 값을 가져 오려고 시도하고 있습니다. 로컬 변수와 동일하게 설정하고 표시하려고합니다. 필자가 찾은 모든 자습서에서는 Post 메서드를 사용하여 데이터베이스에 값을 저장합니다.Ruby on Rails에서 로컬 변수를 설정합니다.

사용자가 드롭 다운에서 선택한 것과 동일한 지역 변수를 설정할 수 있습니까? 여기

내가 할 노력하고있어 보여 몇 가지 예제 코드, 난 그냥

<% year = 2017 %> 
<p>What is your age?</p> 
<%= select_tag "my_age", raw("<option>1</option><option>2</option><option>3</option>") %> 
<% birth_year = year - age %> 
<%= puts "You were born in #{birth_year}" %> 

답변

0

방법에 따라 ... 변수 시대와 동일하게 선택 드롭 다운 값을 설정하는 방법을 모른다 당신이 당신의 질문을 썼다면, 당신은 몇몇 JavaScript를 사용하는 솔루션을 원할 것 같은데. Ruby는 서버에서 실행됩니다. 서버가 사용자가 선택한 것을 알기 원하면 서버에 데이터를 보내야합니다. 그래서 다른 튜토리얼은 서버에 POST 데이터를 읽었습니다.

const year = 2017 
const my_age = document.getElementById("my_age") 

my_age.addEventListener("change", (evt) => { 
    const age = evt.target.value 
    const birth_year = year - age 
    console.log("You were born in " + birth_year) 
}) 
0

당신이 하나의 인스턴스 만 호출에 살고있다 지역 변수에 대해 이야기하고 있기 때문에 :

다음은 자바 스크립트의 조금이 할 수있는 방법입니다. 말하는 것은 뷰가 호출되기 전에 사용하고자하는 변수가 한 번 렌더링된다는 것을 의미합니다.
당신이 말하는 드롭 다운은 양식 제출을 통해 전달되어야하는 양식 요소입니다. 따라서 변경을 원할 때마다 다시로드해야합니다. birth_year. 이 경우 GET 또는 POST를 사용하는 경우 중요한 차이가 없습니다.

<%= form_tag("/myaction", method: "get") do %> 
    <p>What is your age?</p> 
    <%= select_tag "my_age", raw("<option>1</option><option>2</option>   
    <option>3</option>") %> 
    <%= puts "You were born in #{@birth_year}" %> 
<% end %> 

컨트롤러에서 : 뷰에서

한편

def myaction 
    year = Date.today.year 
    age = params[:my_age] 
    @birth_year = year - age 
end 

, 당신은 클라이언트 페이지 (프론트 엔드) 당신이 필요로 즉시에 변수를 사용하려는 경우 Javascript 또는 사용중인 다른 클라이언트 측 프레임 워크에서 값을 설정하십시오.