2013-06-27 2 views
0

개체의 이름을 자동으로 가져 오는 연결을 만들려고합니다. exemple에 대한레일이 관련 모델에 값을 전달합니다.

**User has one Brand** 

User Table: 
id 
Name 

================= 

**Belongs to User** 

Brand Table: 

id 
user_id 
user_name 

그래서 난 브랜드 테이블에 사용자 이름을 전달하는 방법을 알고 싶습니다, 감사의

답변

1

그냥하는 방법 정의 :

class Brand < ActiveRecord::Base 

    belongs_to :user 

    def user_name 
    user.name 
    end 

end 
+0

은 초, 나를 보자! – dcalixto

+0

NoMethodError : 정의되지 않은 메소드 'name'for nil : NilClassm :( – dcalixto

0
b = Brand.first 
name = b.user.name 
0

그것 정말 필요하지를 데이터베이스에 여분의 사용자 이름 열이 있어야합니다.

사용자 이름을 얻으려면 brand.user.name을 사용하면됩니다.

보기는의 인스턴스가 @brand 당신은 단순히 brand.user.name

그렇지 않으면

meagar 말한대로 할 @ 할 것 그렇다면.

0

delegate 방법을 사용할 수 있습니다. 예를

모델

class Brand < ActiveRecord::Base 
    belongs_to :user 
    delegate :name, to: :user, prefix: true 
end 

사용

를 들어
brand = Brand.find(params[:id]) 
puts brand.user_name 
+0

오른쪽, 지금 확인하겠다! – dcalixto