0

중첩 된 폼/리소스 및 라우팅을 사용할 때 레일이 작동하는 일반적인 방법에 문제가 있습니다.레일이 중첩 된 리소스 및 초기화 된 리소스의 경로

내가 두 테이블, 단어와 정의가 ...

단어는 여러 정의가 있지만, 적어도 하나의 정의를 가질 때까지 나는 단어를 작성하지 않습니다.

모델 및 컨트롤러 끝의 모든 것이 작동하지만 양식 도우미를 처리하는 방법을 알 수 없습니다.

<%= semantic_form_for [@word, @definition] do |f| %> 

@word가 실제로 존재하며 새 UNSAVED 레코드가 아닌 경우에만 작동합니다. IE의 컨트롤러에서 나는 find_or_initialize_by을 호출하고 Word를 호출 한 다음 그 정의를 빌드합니다.

<%= semantic_form_for [:word, @definition] do |f| %> 

이 단어는 단어가없는 경우에만 표시됩니다. IE에서이 구조를 사용하여 편집하려고하면 홀수 URL (작동하지 않음)이 표시됩니다. 나는 url_for 도우미를 사용하여 시도하지만, 상기와 유사한 결과를 가지고 words/12345/definition/12345

...

다른 아이디어? 당신은 싶어 체류 CRUD 허용 정의 단어 이전에 생성 할 경우 당신이 할 수 있도록

답변

1

Mongoid이 포함 된 초기화하지 않습니다 기본적으로 문서 당신은 당신의 Word 모델의 콜백 자신이 대부분을 구축해야합니다

after_initialize :build_definition 

def build_definition 
    self.definitions.build unless self.definitions.any? 
end 
+0

의미가 있습니다,하지만 난 너무 다른 많은 문제를 야기 이후 나타났습니다. @word.definitions.blank를 더 이상 사용할 수 없습니까? – holden

0

, 당신은, 정의에 대한 단어 안에 하나 개는 외부 경로를 복제해야합니다

<%= semantic_form_for [@definition] do |f| %>