form_for 및 중첩 리소스에 대해 두 부분으로 된 질문이 있습니다. 내가 블로그 엔진을 작성 중이고 기사에 댓글을 연결하고 싶다고 가정 해 보겠습니다. 다음과 같이 중첩 된 리소스를 정의했습니다.
map.resources :articles do |articles|
articles.resources :comments
end
댓글 양식은 다음과 같이 기사 자체 아래에있는 기사의 show.html.erb보기에 있습니다.
<%= render :partial => "articles/article" %>
<% form_for([ :article, @comment]) do |f| %>
<%= f.text_area :text %>
<%= submit_tag "Submit" %>
<% end %>
이것은 오류, "Called id for nil, 이것은 실수로 등이 될 것입니다." 나는 또한 시도했다
<% form_for @article, @comment do |f| %>
올바르게 렌더링되지만 f.text_area를 댓글 대신 기사의 '텍스트'필드와 관련시키고 해당 텍스트 영역의 article.text 속성에 대한 html을 표시합니다. 그래서 나는 이것도 잘못된 것 같습니다. 내가 원하는 것은 '제출'이 CommentsController에 대한 생성 작업을 호출하는 양식입니다. 예를 들어 / articles / 1 / comments에 대한 게시 요청과 같이 params에 article_id가 있습니다.
내 질문의 두 번째 부분은 시작하는 주석 인스턴스를 만드는 가장 좋은 방법은 무엇입니까? ArticlesController의 show 작업에서 @comment를 만들고 있으므로 주석 개체는 form_for 도우미의 범위에 있습니다. 그런 다음 CommentsController의 생성 작업에서 form_for에서 전달 된 매개 변수를 사용하여 새 @comment를 생성합니다.
감사!