2013-03-29 2 views
0

Sinatra에 중첩 된 양식을 작성하려고합니다. 우리는 모델 필드로 easly 일부 값을 전달할 수 있습니다Sinatra 양식 입력의 ID 형식

id="user[name]"

그러나 우리는 또한 관련 모델을 제출하려면? 우리는 사용자와 그의 3 개의 취미를 동시에 추가하려고한다고 가정합니다. 그들을 params로 보내는 법?

답변

1

id 특성이 아닌 name 특성을 기준으로 Params가 해시로 변환됩니다.

필드를이 해시에 추가하려면 양식에 추가하십시오. 당신이 그들을 처리하는 이들의 구조와 방법은 구현에 완전히 따라 다르지만을 게시하는만큼 간단하다 :

<form action="/route/to/post/to" method="POST"> 
    <input name="user[name]" id="user_name" type="text"> 
    <input name="user[hobbies][0][name]" type="text"> 
    <input name="user[hobbies][1][name]" type="text"> 
    <input name="user[hobbies][2][name]" type="text"> 
    <input type="submit"> 
</form> 

반환하는 :

{"user"=>{"name"=>"hiya", "hobbies"=>{"0"=>{"name"=>"1"}, "1"=>{"name"=>"2"}, "2"=>{"name"=>"3"}}}}