Rails将值传递给关联模型

时间:2013-06-27 19:54:35

标签: ruby-on-rails ruby ruby-on-rails-3

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

**User has one Brand**

User Table:
id
Name

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

**Belongs to User**

Brand Table:

id
user_id
user_name

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

4 个答案:

答案 0 :(得分:1)

只需定义一个方法:

class Brand < ActiveRecord::Base

  belongs_to :user

  def user_name
    user.name
  end

end

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在数据库中不需要额外的用户名列。

您只需执行brand.user.name即可获取用户名。

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

否则就像梅加尔所说的那样。

答案 3 :(得分: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