1

내 RoR 애플리케이션에는 사용자가 연락처를 선택하여 전자 메일을 보낼 수있는 기능이 있습니다. 사용자가 연락처를 검색 할 수 있도록이 기능을 추가하고 싶습니다.Ruby on Rails : 양식에서 collection_check_boxes 검색

<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]), :id, :firstname %> 

사용자가 검색 할 수있는 체크 박스 위의 검색 창을 추가하여 구축하는 것이 가능 :

현재, 연락처는 사용자가를 통해 선택할 수있는 체크 박스에 views/emails/form.html.erb에 표시됩니다 이름 옆의 확인란?

답변

0

방해가되지 않는 자바 스크립트로 작업 할 수있는 양식을 만들 수 있습니다.

<div class="form-group"> 
    <!-- Form outside your main form... the REMOTE flag will tell rails 
     to prevent the default behaviour of a form make a request 
     for JS response --!> 
    <%= form_tag contacts_path, remote: true, method: :get do %> 
    <%= input_tag :search %> 
    <%= button_tag "Search" %> 
    <% end %> 

    <div id="email-form"> 
    <%= form_for @email, email_path do |f| %> 
     <!-- Many inputs relative with email omited--!> 

     <div class="contact-list"> 
     </div> 

     <%= f.submit 'Submit' %> 
    <% end %> 
</div> 

같이 연락처를 검색하고 JS보기 위해 그것을 반환하는 컨트롤러/액션 ...

// ContactController 

def index 
    respond_to do |format| 
    format.html { @contacts = Contact.all } 
    format.js { @contacts = Contact.find_by(firstname: params[:search]) } 
    end 
end 

을 가지고 조작하는 액션/컨트롤러에 대한 전망을 선택한 연락처를 추가 할 html

// views/contacts/index.js.erb 
$(document).ready(function() { 
    $('#contact-list').append("<%= collection_check_boxes :email, :contact_ids, @collection, :id, :firstname %>") 
}) 

매우 간단한 시험입니다. 내가 반복을 처리하지 않아 ... 두번 똑같은 것을 검색하면 ...