2011-04-22 9 views
2

레일즈 3의 ID에서 사용자 이름을 어떻게 얻을 수 있습니까? 내 의견으로는 ID가 < % = blog.user_id %>이지만 이름은 어떻게 얻습니까?Rails 3 ID로 사용자 이름 가져 오기

컨트롤러는 스캐 폴드 기본값입니다.

접견,

마크

답변

3

당신이 당신의 Blog 모델의 연관을 정의해야합니다.

belongs_to :user 

다음보기에서이 <%= blog.user.name %>

+1

내가 그 일을했지만 내가 오류 얻을 : 대한 정의되지 않은 메서드'이름 ' "#을 <사용자 : 0x00000102b7a630>" 사용자 이름이 사용자 이름에 저장됩니다. 내가 사용자 이름으로 변경하면 오류가 있습니다 : 정의되지 않은 메소드'username 'for nil : NilClass – Maaaark

+0

이 경우, 관련 사용자가없는 블로그 인스턴스가 있다고 의심됩니다. 오류를 피하려면 다음을 사용할 수 있습니다 :'<% = blog.user.try (: username) %>'. –

+0

나를 위해 일한 위대한! 사용자 ID가없는 이전 블로그 게시물을 삭제하는 것을 잊지 않습니다. 삭제 한 후 첫 번째 솔루션도 잘 작동했습니다! 고맙습니다! – Maaaark

1

당신은 <%= blog.user.name %>를 사용해야하고 블로그 모델에서

belongs_to :user 

을 정의 할 수 있습니다. 보기 수준에서 ..._id으로 작업해야합니다.

0

레일즈에서 코딩하는 법을 배워야합니다. 이것은 매우 기본적인 질문입니다.

그것은

2

는 일반적으로 당신이 post.user.name 같은 점의 긴 사슬을 피하려고 좋은 온라인 자습서에게의 http://railsforzombies.org

한 번 봐 가지고 생각해 보자. 시도 :

class Post < ActiveRecord::Base 
    belongs_to :user 
    delegate :name, :to => :user, :prefix => true 
end 

이 그런 다음보기에 당신은 사용자 이름을 가져

@post.user_name 

를 호출 할 수 있습니다. 나는 좋은 습관을 내 코드에 포함하려고 시도하고 있기 때문에 이것을 버릴 것이라고 생각했다.

0

하여 사용해보십시오 <퍼센트 = blog.user.try (이름) %이>

관련 문제