0

我正在尝试建立一个自动获取对象名称的关联。举个例子

**User has one Brand**

User Table:
id
Name

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

**Belongs to User**

Brand Table:

id
user_id
user_name

所以我想知道如何将用户名传递给品牌表,谢谢

4

4 回答 4

1

只需定义一个方法:

class Brand < ActiveRecord::Base

  belongs_to :user

  def user_name
    user.name
  end

end
于 2013-06-27T19:58:24.733 回答
0

在您的数据库中没有必要有那个额外的用户名列。

您可以简单地执行 brand.user.name 来获取用户名。

因此,如果您的视图有 @brand 的实例,您只需执行 @brand.user.name

否则按照meagar所说的去做。

于 2013-06-27T20:11:31.207 回答
0

You can use the delegate method for this. For example

model

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

usage

brand = Brand.find(params[:id])
puts brand.user_name
于 2013-06-27T20:14:57.757 回答
0
b = Brand.first
name = b.user.name
于 2013-06-27T19:59:49.240 回答