** 안녕하세요 여러분 모두 사용자가 세부 정보를 삽입 할 수있는 주소록을 하나 만들려고합니다.양식에 동적으로 생성 된 필드를 데이터베이스 레일에 추가하는 방법
- 사용자는 양식에서 자신의 정보를 삽입 할 수 있습니다. 사용자가 가정 및 개인 유형 일 수있는 것처럼 정보를 1 개 이상 추가하려면 동적 필드를 제공합니다. 내 쿼리 레일의 형태로 그 동적 값을 결합하고, DB에 데이터를 제출하는 방법입니다. **
내 모델은 정보 유형 정보 이름과 정보 데이터 이있는 데이터를 가지고 할 수있는 사용자처럼 예를 들어 사용자가 정보 유형 = 수 infoname = homePhone를의 infodata를 삽입 할 수 = 23623623 사용자가 그는 내가 지금이
<%= form_for @client_info, :validate => true do |f|%>
<% if @client_info.errors.any? %>
<div id="error_explanation", class="alert-message Warning">
<h2><%= pluralize(@client.errors.count, "error") %> Occured</h2>
<ul>
<% @client.errors.full_messages.each do |msg| %>
<li>
<%= msg %>
</li>
<% end %>
</ul>
</div>
<% end %>
<select id = "opts" >
<option value = "0">Select Option</option>
<option value = "1">Phone Number</option>
<option value = "2">Address</option>
<option value = "3">Date</option>
<option value = "4">Email</option>
<option value = "5">Link</option>
</select>
<form>
<div id="ap"></div>
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#opts").change(function() {
if($("#opts").val() == ("1")) {
$("#ap").append('<div id="phn"><select id ="phn"><option>Personal</option><option >Home</option><option >Custom</option></select> <input type ="text" id="ad"></input>' + '<a href="#" class="remove1" id="rm" >Remove</a></div>');
}
if($("#opts").val() == ("2")) {
$("#ap").append('<div id= "add"><select id ="add"><option>Home Address</option><option >Work Address</option><option >Custom</option></select> <textarea rows="2" cols="20"></textarea>' + '<a href="#" class="remove2" id="rm" >Remove</a></div>');
}
if($("#opts").val() == ("3")) {
$("#ap").append('<div id ="date"><select id ="date"><option>Birthday</option><option >Anniversary</option><option >Custom</option></select> <input type ="text" id="datepic" ></input>' + '<a href="#" class="remove3" id="rm" >Remove</a></div>');
}
if($("#opts").val() == ("4")) {
$("#ap").append('<div id ="email"><select id ="email"><option>Home Email</option><option >Work Email</option><option >Custom Email</option></select> <input type ="text"></input>' + '<a href="#" class="remove4" id="rm" >Remove</a></div>');
}
if($("#opts").val() == ("5")) {
$("#ap").append('<div id="link"><select id ="link"><option>Profle</option><option >Blog</option><option>Homepage</option><option>Custom</option></select> <input type ="text"></input>' + '<a href="#" class="remove5" id="rm" >Remove</a></div>');
}
});
$('.remove1').live('click', function() {
$("#phn").remove();
return false;
});
});
</script>
<div class="actions">
<%= f.submit :class => "btn primary" %> <a href="<%= clients_path %>" class="btn">Cancel</a>
</div>
<% end %>
처럼 그 일을하고 다른 type.Please 도움
의 원하는 많은 숫자를 삽입 할 수 있습니다 내가 이 html 생성 된 필드를 내 레일에 추가하고 싶습니다. 양식?
나는 단지 하나의 모델 파일만으로이 작업을 수행하고 있습니다. 답답했습니다. –
다음은 문서 기반 데이터베이스 (예 : mongodb)와 같이 더 적합한 데이터베이스 엔진을 사용하는 것 같습니다. , 또는 user_infos의 직렬화 된 배열을 사용자 모델의 텍스트 필드에 저장하면됩니다. 두 번째 옵션은 "숫자로 검색"기능 또는 이와 유사한 기능을 구현하려고하면 다소 지저분 해집니다. – Frost
안녕하세요 마틴 제 코드를 다시 한 번 살펴보고 코드를 추가하고 약간의 변경을 할 수 있습니까? –