저는 Rails에 익숙하며 Rails 3.2를 사용하여 해결하고자하는 문제에 관해 질문하고 있습니다.Rails 3.2의 'post_id'열과 사용자/게시물/주석 간의 관계가 없습니다.
https://gist.github.com/0fe5cf9093b21f4f632f
내가 코드가 정말 나쁜 경우/난으로 존재하지 않아도 몇 가지를 추가 사과 : 여기가 내 문제를 가정 문제의 몇 개의 파일에 대한 링크가 거짓말이다 내가 따라갈 때 모든 일의 방식에 익숙해 지려고 노력하고있어.
내 웹 사이트에서 작성된 각 게시물에 대한 의견을 갖고 싶습니다. 사용자가 가지고있는 논리는 사용자가 많은 의견을 갖고 있으며 사용자가 여러 의견을 가지고 있다고 생각합니다. 나는 그 관계를 추가했다 (비록 특별히 아무것도하지 않는 것 같지만), 나는 내 테이블 참조가 모두 정확하다고 생각한다. (비록 내가 고안을 사용하면서 사용자에게 아무 것도 추가하지 않았지만 게시물이 별도의 개체 자체이므로 아무 것도 추가 할 필요가 없다고 생각했습니다.)
현재로서는 작성하고 저장할 수 있으므로 일반적으로 모든 의견을 표시 할 수 있습니다. 최소한 user_id
변수도 저장 했으므로 어떤 계정에서 코멘트를 작성하는지 이해할 수 있습니다. 나는 어디에서/언제 내가 post_id
에 있어야하는지에 관해 명확히 알지 않고있다. 그래서 그것은 가장 큰 이슈 다. 어떤 방법 나는 posts_controller
(포스트 페이지가로드 될 때 이론적으로 내가 그 속성을 편집 할 수 있어야하기 때문에), 나는 내려면
undefined method 'post_id'
또는
no post_id column
에서 그것을 시도했다 오류, 그것이 존재하지 않는다는 것을 나타냅니다, 비록 내가 이해하는 한, 나는 그것을 정의했습니다. 앞에서 언급했듯이 user_id
이 저장 될 수 있다는 사실은 저를 더 혼란스럽게합니다. 내 쇼보기에서 만든 주석에 대한 속성을 표시하는 경우
, 나는 다음과 같은 얻을 :
{
"id"=>1,
"content"=>"text here",
"posted"=>Sat, 03 Nov 2012 20:36:53 UTC +00:00,
"user_id"=>1,
"created_at"=>Sat, 03 Nov 2012 20:36:53 UTC +00:00,
"updated_at"=>Sat, 03 Nov >2012 20:36:53 UTC +00:00
}
더 post_id
없다, 나는 의견 마이그레이션 테이블에 추가 했더라도. 게시물 컨트롤러에서 @post.id
을 전달하려는 경우 (게시물 아래에 표시 메소드가 주석 인스턴스에 표시됨) 질량 지정 오류가 발생합니다. :class
및 :foreign_key
옵션을 뒤범벅하는 것은 그리 많은 일이 아닙니다. 내가 레일스의 문서를 포함하고있는 연구를 토대로, 나는 관계를 통해 has_many
이 필요하다고 생각하지 않지만, 정보를 적절하게 저장해야하는 부분이 어디 있는지 놓치고 있습니다.
아마 이것은 도움이되었지만 아마도 데이터베이스/모델 관계 디자인에 대한 필자의 이해 부족 때문일 수 있습니다. 몇 가지 비슷한 질문을 보았지만 여전히 자신의 문제에 대한 솔루션을 적용하기가 어렵습니다.
나는 바보와 데이터베이스 닦기 (나는 무대에 서 있다고 생각한다.)라고 생각하면 post_id가 나타나는 문제가 해결되었다. 내 문제는 지금 어디에서 필연적으로 현재 게시물의 ID에 대해 post_id 값을 설정해야할지 모르겠다는 것입니다. 간단히 "@ comment.post_id = @ post.id"를 사용하면 트릭을 수행하지 않는 것처럼 보입니다. 허용 목록 허용 목록을 사용하여 간단히 해결해야 할 수도 있지만 더 나은 해결책이 있어야한다고 생각합니다. – Paul
명백하게 간단하게 : comment.rb의 post_id attr_accessible이 문제를 수정했습니다. 쇼 모델에서 "<% = f.hidden_field : post_id, : value => params [: id] %>"를 추가해야합니다. 아마도 가장 좋은 해결책은 아니지만, 적어도 지금까지는 밖으로 더 나은 무언가. – Paul