중간 연상 의 불량 행위
                                            
                                                
                                                
                                                
                                                
                                                
                                                 4972 단어  nested_form
                    
묘사
나는 깊이 끼워 넣는 형식의 오류를 만났다.간단히 말해 중간 연결(book in library -->book-->story)이 양식에 중첩된 속성 이외에 아무런 속성이 없을 때 중첩된 양식은 잘못된 ID(모든 것이 동일)를 생성하여params hash에서 컨트롤러에서 유일한 이야기를 얻을 수 있다.
나는 세 가지 모델이 있다.
class Library < ActiveRecord::Base
  has_many :books
  accepts_nested_attributes_for :books
end
class Book < ActiveRecord::Base
  belongs_to :library
  has_many :stories
  accepts_nested_attributes_for :stories
end
class Story < ActiveRecord::Base
  belongs_to :book
end
class LibrariesController < ApplicationController
  def new
    @library = Library.new
    @library.books.build
  end
  def create
    render text: params.inspect
  end
end
<%= nested_form_for(@library) do |f| %>
  <div class="field">
    <%= f.label :name_of_library %><br>
    <%= f.text_field :name_of_library %>
    <%= f.fields_for :books  do |book_f| %>
      <%= book_f.label :title %>
      <%= book_f.text_field :title %>
      <%= book_f.fields_for :stories do |story_f| %>
        <%= story_f.label :subtitle %>
        <%= story_f.text_field :subtitle %>
        <%= story_f.link_to_remove 'Remove story' %>
      <% end %>
      <%= book_f.link_to_add 'Add story', :stories %>
    <% end %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %> 
나는 책 한 권에 두 개의 이야기를 첨가했다.모든 것이 정상입니다. 요청을 보낸 후 매개 변수가 산열됩니다. (여기에서 불필요한 필드를 삭제했습니다.)
{"library"=>{"name_of_library"=>"Babylon library", "books_attributes"=>{"0"=>{"title"=>"Book of books", "stories_attributes"=>{"1368882624930"=>{"subtitle"=>"True story", "_destroy"=>"false"}, "1368882631410"=>{"subtitle"=>"False story", "_destroy"=>"false"}}}}}}
{"library"=>{"name_of_library"=>"Babylon library", "books_attributes"=>{"0"=>{"stories_attributes"=>{"1368882731158"=>{"subtitle"=>"False story", "_destroy"=>"false"}}}}}}
/libraries/new(이 프로그램은 rails 4.0.rc1이지만 rails 3의 플러그인 폼이 완전히 같은 문제에 부딪혔음)을 시도하고 책 제목이form이나Not인 상황에서 시도한다.기호=를 삭제하면 필드가 렌더링되지 않습니다.<%= book_f.label :title %>
<%= book_f.text_field :title %>
또한 만약에 내가 표를 보여주기 전에 중간 서적 관련을 저장한다면 이 오류는 저장되지 않은 관련에만 존재한다. 모든 작품
#new 작업에서 대상을 만드는 것은 매우 잘못된 방식이다.토론 #1
보아하니 이것은closestChildjavascript 코드의 문제인 것 같다.내가 사용하는 임시 해결 방안은 숨겨진 keep 입력 필드 (.gitcept 파일과 유사) 를 폼에 추가하는 것입니다.중간 블록에 주어진 입력 필드가 없을 때 closestChild 중간 블록의 상하문은 입력한 name 속성을 사용하기 때문에 파생할 수 없습니다.그래서 closestChild 내부 관련 입력을 눌렀다.토론 #2
도 같은 문제가 있다.#266토론 #셋
page.execute_script <<-JAVASCRIPT # make sure simple IDs are generated for new form fields
  var i = 0; NestedFormEvents.prototype.newId = function () { return ++i; };
JAVASCRIPT
토론 #4
266호는 지금 본점에 있습니다.감사합니다!토론 #5
저는 끼워넣기 형식(0.3.2)과 단순 형식(2.1.0)에 같은 문제가 있습니다.
코드 예:
=simple_nested_form_for[:user,@shop],url:“/user/update_shop_front_end”,id:@shop.id, 방법: "post",:html=>{:class=>'user info form horizontal'}do | f|
=f. 입력:이름
=f. 입력:logo
= 이미지 태그 f. 객체표지사이트 주소
.clearfix
% 인적 자원
%br
.title="배너 관리"
%br
상점 배너 
=f. 필드 | 예: 스토어 | 배너 | b|
=b. 입력:이미지
=b. 링크 제거 "이 배너 제거"
%br
= f.link to add "add a banner": shop banner, 데이터: {target:#shop banner"} 토론 #6
gem에서 이 리콜 업데이트를 사용하지 않았습니다.gem 및 github 소스 코드를 추가하여 동일한 문제를 해결했습니다.gem 'nested_form', github: 'ryanb/nested_form'
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(중간 연상 의 불량 행위), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://github.com/ryanb/nested_form/issues/267
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
=f. 필드 | 예: 스토어 | 배너 | b|
=b. 입력:이미지
=b. 링크 제거 "이 배너 제거"
%br
= f.link to add "add a banner": shop banner, 데이터: {target:#shop banner"}
토론 #6
gem에서 이 리콜 업데이트를 사용하지 않았습니다.gem 및 github 소스 코드를 추가하여 동일한 문제를 해결했습니다.gem 'nested_form', github: 'ryanb/nested_form'
Reference
이 문제에 관하여(중간 연상 의 불량 행위), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/ryanb/nested_form/issues/267텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)