많은 태그를 포함 할 수있는 회사 모델이 있습니다. 그것은 잘 작동하지만 한 경우에는 작동하지 않습니다. 이 기회는 회사 모델 유효성 검사가 실패하는 경우입니다. 이후 : render => 'edit'뷰에 태그를 표시하지 않습니다. 데이터 pre가 데이터를 올바르게 가져 오지 못하는 것 같습니다. 유효성 검사를 해결할 때 태그가 보존되기를 바랍니다.Ruby on Rails - JS 입력 토큰, 유효성 검사가 실패 할 때의 문제점
는 여기에서이 아이디어를 가지고 : http://loopj.com/jquery-tokeninput/
이 내가 tag_tokens에 대한 회사의 모델이 무엇 : http://railscasts.com/episodes/167-more-on-virtual-attributes
내가 입력 토큰 컨트롤을 사용하여 다음
before_save :save_tag_tokens
attr_writer :tag_tokens
attr_accessible :tag_tokens
def tag_tokens
@tag_tokens || tags.to_json(:only => [:id, :name])
end
def save_tag_tokens
if @tag_tokens
@tag_tokens.gsub!(/CREATE_(.+?)_END/) do
Tag.create!(:name => $1.strip.downcase).id
end
self.tag_ids = @tag_tokens.split(",")
end
end
코드입니다 보기에서 :
<div class="input text no-border">
<% Tag.include_root_in_json = false %>
<%= company_form.label :tag_tokens, t('form.account.company.edit.company_tags_html')%>
<%= company_form.text_field :tag_tokens, :id => 'company_tag_tokens', "data-pre" => @company.tag_tokens%>
<p class="tip"><%= t('form.account.company.edit.tag_tip') %></p>
</div>
ED IT :
위의 코드에서 문제가 무엇인지 확인합니다. data-pre="[{"id":1704,"name":"dump truck"}]"
:
내가 편집 페이지 데이터 사전이 포함되어로드 할 때. 유효성 검사 오류가있는 양식을 제출하면 데이터 사전에 data-pre="1704"
이 포함됩니다.
내가이에 코드를 변경하는 경우 : 아직 회사의 모델에 저장되지 않은
def tag_tokens
tags.to_json(:only => [:id, :name])
end
새로운 태그를 제거, 그들이 DB 매번 읽기 때문이다. 양식 전환 사이에 입력 된 데이터를 보존하려면 어떻게해야합니까?
을 도와 드릴까요? – MJM