0

Rails 애플리케이션에는 사용자 모델 (RESTful 인증에 의해 다소간 구축 된)과 다른 여러 모델이 있습니다.다른 상태의 사용자 객체 액세스 (Ruby on Rails, RESTful 인증)

사용자 has_many : 그래서 예를 들어, 가정 해 봅시다 게시물

포스트 belongs_to : 사용자

를 어디서나 사용자의 내가 기대하는 것처럼 나는 사용자 변수에 액세스 할 수 있습니다 자원. @ user.name, @ user.email, @ user.login 등은 모두 예상 된 개체를 반환합니다.

그러나 다른 리소스 (이 예제에서는 게시물)에서이 속성 중 아무 것도 nil (NoMethodError가 아닌 nil)을 반환하지 않고 액세스 할 수 없습니다.

왜 이런가요? , current_user.email과 같이 current_user으로 전화를 걸 수는 있지만, 해당 사용자는 알 수없는 것처럼 보입니다.

답변

1

여기서 두 명의 사용자가 있습니다.
1) 현재 2 사용자
로그인) 후가 CURRENT_USER를 통해 액세스 할 수 있어야합니다

현재 로그인 한 사용자에 속한 사용자. 포스트가 속한 사용자는 게시물 컨트롤러에서 설정해야합니다 응답에 대한

@user = Users.find(@post.user_id) 

또는

@user = @post.user 
+0

감사합니다. 내가 게시물/쇼에서 게시물이 속한 사용자 이름에 액세스하려고한다고 가정 해 봅시다. 이름은 Users 자원의 @ user.name입니다. 현재 Posts 컨트롤러에서 보여주기 위해 : @post = Post.find (params [: id], @user). – btw

+0

내가 게시물을 추가 한 사용자의 이름에 액세스하려는 경우 (PostsController에서) 사용자를 설정합니다. @post = Post.find (params [: id]), 사용자를 @user = @post로 설정하십시오. .사용자. 다음 뷰에서 : <% = @ user.name %>에 의해 게시 됨. HTH –

+0

이상하게도 내가 기대하는 바를 정확히 말하고 있지만 문제는 계속되고 있습니다. 내가 알아 채지 못하는 두려운 점이 무엇인지 궁금해지기 시작했습니다. – btw