이것은 나에게 악몽이었고 나는 나를 도울 수있는 사람에게 팔과 눈알을 기꺼이 주었다. 나는 이것을 최대한 잘 설명하려고한다.many_to_my_to_my 여러 연관 관계
사용자가 '프로필'을 편집하면 중첩 된 속성 필드에있는 스킬을 입력 할 수 있습니다. '다른 스킬 추가'를 클릭하면 입력 할 수있는 다른 필드가 채워집니다. 입력이 시작되면 jquery-autocomplete가 시작됩니다. 자동 완성에서 항목을 선택해야합니다. 그들은 저장하면, 예를 들어, 3 개 기술, 우리는이를 얻을 :
테이블 : 나는 실제 기술 이름을 저장되지 않습니다 수행 할 작업을 이제 skills
+-----------+----------------+
| user_id | skill |
+-----------+----------------+
| 4 | Photoshop |
+-----------+----------------+
| 4 | Illustrator |
+-----------+----------------+
| 4 | InDesign |
+-----------+----------------+
. 대신, skills_vocabulary
list (jquery-autocomplete가 사용하는 것)의 스킬 ID를 저장하고 싶습니다.
테이블 : skills_vocabulary
+------+----------------+
| id | skill |
+------+----------------+
| 1 | Illustrator |
+------+----------------+
| 2 | Dreamweaver |
+------+----------------+
| 3 | After Effects |
+------+----------------+
| 4 | InDesign |
+------+----------------+
| 5 | Photoshop |
+------+----------------+
| 6 | Flash |
+------+----------------+
따라서, skills
테이블은 다음과 같이한다 : 어떤 도움을 크게, 크게, 크게 감상 할 수
+-----------+----------------+
| user_id | skill_id |
+-----------+----------------+
| 4 | 5 |
+-----------+----------------+
| 4 | 1 |
+-----------+----------------+
| 4 | 4 |
+-----------+----------------+
. 나는이 일로 3 개월 동안 난처하게 굴 었어.
감사합니다.
EDIT/
<%= f.fields_for :skills do |builder| %>
<%= render "skills_fields", :f => builder %>
<% end %>
<p><%= link_to_add_fields "Add a Skill", f, :skills %></p>
_skills_fields.html.erb
<div class="fields ac skills">
<div class="clearfix">
<span class="left"><%=f.autocomplete_field :name, users_autocomplete_skills_vocab_name_path, :class => 'restricted_to_autocomplete' %></span><span class="remove_link left"><%= link_to_remove_fields "[x]", f %></span>
</div>
</div>
편집 2/
지금은 그냥
skill.rb
class Skill < ActiveRecord::Base
belongs_to :user
end
,369입니다
user.rb
class User < ActiveRecord::Base
has_many :tskills, :dependent => :destroy
accepts_nested_attributes_for :tskills, :allow_destroy => true, :reject_if => lambda { |a| a[:name].blank? }
end
skills_vocabulary.RB
class SkillsVocabulary < ActiveRecord::Base
end
내 컨트롤러 코드는 기본 인덱스, 쇼, 새, 생성, 업데이트,
기술의 목록을 파괴하는 것입니다 (길이 약 10,000 항목) 테이블에 skills_vocabularies
http://loopj.com/jquery-tokeninput/을 사용하는 것이 좋습니다. 그것을위한 railscast가있다 : http://railscasts.com/episodes/258-token-fields. 그렇지 않다면, https://github.com/crowdint/rails3-jquery-autocomplete의 코드를 살펴보고 물건을 바꾸기 시작하십시오. – rubish
또한 자동 완성 기능을 추가하려면 SO 질문 (http://stackoverflow.com/questions/6727183)을 참조하십시오. 이것은 사용자가 새로운 기술을 추가하기 위해 계속해서 클릭하는 것보다 매끄 럽습니다. – rubish
@Rubish 저는 실제로 현재 rails3-jquery-autocomplete를 사용하고 있습니다 - 우리는 자동 완성되지 않은 것을 데이터베이스에 자동으로 추가하도록 결정할 수도 있습니다 . 그것은 나를 괴롭히는 vocab 테이블에 대한 참조 일뿐입니다. – stewart715