2013-06-27 2 views
0

Я пытаюсь создать ассоциацию, которая автоматически получит имя объекта. для ExempleRails передает значение связанной модели

**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: undefined method 'name 'for nil: NilClassm :( – dcalixto

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