2013-06-27 20 views
0

我试图使一个关联自动获取对象的名称。对于为例Rails将值传递给关联的模型

**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'为零: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