레일즈 3의 ID에서 사용자 이름을 어떻게 얻을 수 있습니까? 내 의견으로는 ID가 < % = blog.user_id %>이지만 이름은 어떻게 얻습니까?Rails 3 ID로 사용자 이름 가져 오기
컨트롤러는 스캐 폴드 기본값입니다.
접견,
마크
레일즈 3의 ID에서 사용자 이름을 어떻게 얻을 수 있습니까? 내 의견으로는 ID가 < % = blog.user_id %>이지만 이름은 어떻게 얻습니까?Rails 3 ID로 사용자 이름 가져 오기
컨트롤러는 스캐 폴드 기본값입니다.
접견,
마크
당신이 당신의 Blog
모델의 연관을 정의해야합니다.
belongs_to :user
다음보기에서이
<%= blog.user.name %>
당신은 <%= blog.user.name %>
를 사용해야하고 블로그 모델에서
belongs_to :user
을 정의 할 수 있습니다. 보기 수준에서
..._id
으로 작업해야합니다.
레일즈에서 코딩하는 법을 배워야합니다. 이것은 매우 기본적인 질문입니다.
그것은는 일반적으로 당신이 post.user.name 같은 점의 긴 사슬을 피하려고 좋은 온라인 자습서에게의 http://railsforzombies.org
한 번 봐 가지고 생각해 보자. 시도 :
class Post < ActiveRecord::Base
belongs_to :user
delegate :name, :to => :user, :prefix => true
end
이 그런 다음보기에 당신은 사용자 이름을 가져
@post.user_name
를 호출 할 수 있습니다. 나는 좋은 습관을 내 코드에 포함하려고 시도하고 있기 때문에 이것을 버릴 것이라고 생각했다.
하여 사용해보십시오 <퍼센트 = blog.user.try (이름) %이>
내가 그 일을했지만 내가 오류 얻을 : 대한 정의되지 않은 메서드'이름 ' "#을 <사용자 : 0x00000102b7a630>" 사용자 이름이 사용자 이름에 저장됩니다. 내가 사용자 이름으로 변경하면 오류가 있습니다 : 정의되지 않은 메소드'username 'for nil : NilClass – Maaaark
이 경우, 관련 사용자가없는 블로그 인스턴스가 있다고 의심됩니다. 오류를 피하려면 다음을 사용할 수 있습니다 :'<% = blog.user.try (: username) %>'. –
나를 위해 일한 위대한! 사용자 ID가없는 이전 블로그 게시물을 삭제하는 것을 잊지 않습니다. 삭제 한 후 첫 번째 솔루션도 잘 작동했습니다! 고맙습니다! – Maaaark