2016-05-31 1 views
2

저는 레일스에서 ​​매우 익숙했습니다. 레일즈에서 "form_for"에 입력 필드를 동적으로 추가/제거해야합니다. 이 입력을 사용하여 사용자 프로필을 변경하고 있습니다. 및 (I도 정확히 사람들이 무엇인지 확실하지 않다) 내가 중첩 된 속성을 사용하여 많은 자습서를 보았다Rails 4에 텍스트 필드를 동적으로 추가하는 방법은 무엇입니까? (중첩되지 않음)

<%= f.label :languages, "Languages" %> 
<%= f.text_field :languages, class: "shortInput", value: @parsed_json_user['user']['languages']%> <br /> 

하지만 난 모델을 사용하지 않을 : 여기

내가 동적 켜려는 조각이다 . 보시다시피, 저는 API를 사용하여 "User"모델을 업데이트 할 것이므로 많은 값 (예 : 배열)의 객체 만 원합니다.
내가

을 fields_for 사용해야 새로운 추가, 제거
영어 :

언어 :

내가 좋아하는 뭔가가 필요? 아니면 어떻게 JS 또는 JQuery를 사용합니까? 어떤 도움을 주시면 감사하겠습니다.

나는 비슷한 질문을 어디에서나 찾았지만 아무 것도 발견하지 못했다. 실제로 알고 있거나 찾았다면 나에게 올바른 방향으로 나를 가리켜 주면 멋질 것입니다! 사전

+0

이 텍스트 필드가 필요합니까? 나에게 이것은 선택 상자처럼 보입니다. 다중 선택 옵션에 대해 대화 형 인 select2를 사용할 수 있습니다. – emaillenin

+0

선택 상자를 사용할 수는 있지만 사용자의 선택이 제한 될 수 있습니다. 나는 해결책을 찾지 못한다면 결국 당신이 제안한 것처럼 그것을 할 것입니다 ... 누군가가 풀라 (또는 다른 비 - 나열된 언어)를 말할 수 있다고 상상해보십시오. 목록에없는 것은 실망 스럽습니다. 어쨌든 제안 해 주셔서 감사합니다! – fmlopes

+0

select2에는 새 항목을 추가하는 옵션이 있습니다. 이미 존재하는 것만이 아닙니다. – emaillenin

답변

0

@languages ​​= 사용자의 언어

f.collection_select :user_languages[], @languages, :id, :name , {hide_label: true, :selected => @languages.first.id} , {:style => "width: 120px",:required => true} 
+0

은 @languages가 String 배열임을 고려하여 "id"와 "name"대신 무엇을 호출해야합니까? – fmlopes

+0

그 2 개의 값을 넣지 않으려 고 시도했습니다 – Boltz0r

+0

최종 사용자로서 필요한 것은 2 가지 일을합니다. 여러 항목을 선택하고 사용자 정의 값을 추가하십시오. 감사합니다. – fmlopes

-1

업데이트에서

감사 : 단일 형태의 경우, 중첩 - 하나의 옵션이 함께 자신의 jQuery를 해킹 할 수 없습니다. 내 테스트를 위해 다른 사이트를 사용했지만이 Jquery example은 내가 쉽게 발견 한 사이트였습니다. 나는 ... 그것은 /app/assests/javascript/.js 간다 ... 최대 필드의 카운터에 대한 물건을 제거

$(document).ready(function() { 

    $(".add_field_button").click(function(e){ //on add input button click 
     e.preventDefault(); 
      $('.input_fields_wrap').append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box 
     } 
    }); 

    $(".input_fields_wrap").on("click",".remove_field", function(e){ //user click on remove text 
     e.preventDefault(); $(this).parent('div').remove(); 
    }) 
}); 

그리고 HTML 코드

...

<div class="input_fields_wrap"> 
     <button class="add_field_button">Add More Fields</button> 
     <div><input type="text" name="mytext[]"></div> 
    </div> 

운이 아직 없다면 Cocoon Gem 또는 railscast 197/198은 동적 인 jquery에 필요한 것을 할 것입니다. 중첩에 대한 부분을 무시하고 필요한 부분 만 가져옵니다. 또한

, 나는 아직도

에서 ... 당신은 아마 정확히 당신이 원하는 것이 무엇 ... 거기에 대한 답변을 찾을 수있을 ... 최근 업데이 트를했다 turbolinks에서 주변에 파고하고있어 레일즈에서 작성한 두 개의 경로에 의존하고 있다는 것을 알 수 있습니다. 링크는 다음과 같이 (추가/삭제) jquery를 통해 빌드됩니다. before 또는 : link_to_add_association 또는 link_to_remove_association 이후에보기 필드 추가/숨기기 & 업데이트 버튼은 실제로 activeRecord를 통해 데이터베이스로 모든 엉망을 푸시합니다.

관련 문제