2010-12-16 8 views
0

Flash에서 레일 웹 사이트에 값을 게시하려고합니다.레일 및 플래시 매개 변수

내가 가지고있는 것은 플래시에서 게시하는 http://localhost:3000/users/new의 URL입니다. POST 메서드로 보내는 변수는 score=xx입니다. 어떤 이유로 새로운 방법으로 레일 컨트롤러의 값을 선택할 수 없습니다 : @newScore = params[:score]. 메소드를 GET으로 변경하면 문제없이 값을 얻을 수 있습니다. 그래서 POST 메서드에 params 해시를 사용해야합니까?

누군가가 조언을 할 수 있으면 감사히 생각합니다.

+1

': score' 매개 변수가 컨트롤러에 수신됩니까? 'users/new' 액션에 대한 뷰에'debug params'를 넣어 컨트롤러를 체크인하십시오. – Zabba

답변

0

맞춤 경로를 사용하고 있습니까? 또는 resources :users을 수행합니까? 더 나은 실행 rake routes. /users/new은 일반적으로 GET입니다. 이는 객체를 가져 오는 중이므로 의미가 있습니다. create 조치는 유일한 POST이며 /users에 매핑됩니다. POST로 /users/new을 실행하면 REST가 중단됩니다.

POST 데이터는 GET 메서드에서 사용할 수 없습니다. 모든 매개 변수는 URL의 쿼리 문자열에 저장됩니다. 해당 매개 변수는 여전히 해시 params에 표시됩니다.

편집하는 것은

실제로이 REST 호출을 가진 사용자를 만들려고하는 경우, http://localhost:3000/users하지http://localhost:3000/users/new

편집

불행히도를 게시 할 필요가 플래시가 POST 요청을 전송하는 방법에 대해 충분히 알지 못해서 매개 변수가 왜 나오지 않는지 알려줄 수 있습니다. 그러나 양식에 들어가려는 경우 GET을 http://localhost:3000/users/new으로 지정해야합니다. GET을 할 때 변수를 올바르게 집어 올릴 수 있다고하겠습니다. 따라서 POST를 수행 할 필요가 없습니다.

사용자가 스코어를 편집하지 못하도록하려면 컨트롤러의 변수에 값을 저장하고 뷰를 렌더링 할 때 해당 값을 편집 할 수없는 요소에 넣고, 비활성화 된 텍스트 상자 또는 어쩌면 단지 레이블처럼.

편집

당신이 레일에 플래시 건너편에 귀하의 게시물 데이터를 얻을하는 방법을 알아낼 수 있다면, 당신은 users_url에 POST를 수행해야하고 다시 보내도록 create 방법을 수정할 수 있습니다 생성 된 사용자의 ID입니다. 그런 다음 다시 돌아 오면 점수 필드를 사용하지 않고 해당 ID로 사용자를 편집 할 수 있습니다. 행운을 빌어 요.

+0

예/user/new는 GET입니다. 이 문제를 해결할 방법을 제안 해 주시겠습니까? 리소스를 사용하는 대신 각 URL에 대한 사용자 지정 경로를 만들어야합니까? 사용자 – Peter

+0

내가 말하는 것은/users/new *가 GET이어야합니다. 그렇지 않으면 REST가 중단됩니다. 그렇다면 왜 GET 메소드에 POST를 수행하려고합니까? 그것은 말이되지 않습니다. 왜 POST를하고 싶습니까? – Samo

+0

@Peter : 새 사용자를 만들려고하십니까? 그렇다면 http : // localhost : 3000/users에 게시하고 게시물 데이터를 보내야합니다. – Samo