양식이 첫 줄을 제외하고 괜찮 (당신은, 당신의 관계를 통해 이루어 먹으 렴 USER_ID에 대한 숨겨진 필드가 필요하지 않습니다) :
<%= form_for(@comment) do |f| %>
은 다음과 같아야합니다
<%= form_for([@post, @comment]) do |f| %>
이제 특정 게시물에 대한 의견을 작성하거나 업데이트하기위한 양식을 렌더링합니다.
그러나 모델과 컨트롤러를 변경해야합니다.
class Post
has_many :comments
end
class Comment
belongs_to :post
end
이 특정 게시물에 속하는 모든 의견을 보여, 당신은 @ post.comments에 액세스 할 수 있습니다. 컨트롤러에서
특정 게시물에 대한 의견을 액세스 할 수 있습니다
class CommentsController < ApplicationController
def index
@post = Post.find(params[:post_id])
@comment = @post.comments.all
end
end
이 방법을 사용하면 특정 게시물에 대한 의견의 인덱스에 액세스 할 수 있습니다.
업데이트
한 가지 더, 당신의 경로는 다음과 같아야합니다
AppName::Application.routes.draw do
resources :posts do
resources :comments
end
end
이 당신 post_comments_path (그리고 더 많은 경로)
문제가 무엇인가에 대한 액세스 권한을 줄 것인가? –
일반적으로 폼에'user_id'를 전달할 필요는 없습니다. '컨트롤러 (controller) '에서 연관성이있다. –
답변을 주셔서 감사합니다.하지만 여전히이 오류가 발생합니다. # <# : 0x3f805e0>에 대한 정의되지 않은 메소드'post_comments_path '가 –
Pau