문제

이것은 아마도 멍청한 질문이지만 좋은 대답을 찾을 수는 없습니다. 객체가 속한 모델을 다시 참조하는 가장 좋은 방법을 알고 싶습니다.

예를 들어:

class User < ActiveRecord::Base
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :users
end

따라서 사용자의 게시물을 얻으려면 user.posts를 사용할 수 있지만 게시물의 사용자를 얻으려면 반대로 할 수 없습니다 : post.user

Post 모델에 "사용자"메소드를 추가하면 작동하지만 가장 좋은 방법은 아닙니다.

class Post < ActiveRecord::Base
  belongs_to :users

  def user
    User.find(self.user_id)
  end
end

이 블로그 게시물을 보면 http://www.fortytwo.gr/blog/18/9-estential-rails-tips 예를 들어, 저자는 "사용자와도 작동하지 않는 include => [: user]뿐만 아니라 post.user.username을 사용한다는 것을 알 수 있습니다. "게시물 모델의 방법.

나는 이것이 기초라는 것을 알고 있으므로 인내심에 감사드립니다. 이 관계를 달성하는 가장 좋은 방법을 알고 싶습니다.

내 주요 목표는 Nested 포함을 사용하여 "Finds"를 작성하는 것입니다.

post = post.find (: all, : include => [: user])

이것을 시도 할 때, 나는 "activerecord :: configurationError : 'user'라는 이름의 연관성을 찾지 못했습니다.

정말 감사합니다.

도움이 되었습니까?

해결책

나는 레일에 조금 새로운 것이지만 이것은 자동으로 작동해야합니다 ...

아 - 당신은 포스트에서 부모 클래스를 belongs_to :users; 그러나 그것은 단일 사용자에만 속하기 때문에 Rails는 belongs_to :user (또는 물론, belongs_to :users, :class_name => "User").

그건:

class Post < ActiveRecord::Base
  belongs_to :user
end

일을해야합니다.

다른 팁

모델은 단수형이어야합니다. 처럼

belongs_to :user
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top