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 を実行します。

それ以外の場合は、ミーガーが言ったようにします。

于 2013-06-27T20:11:31.207 に答える
0
b = Brand.first
name = b.user.name
于 2013-06-27T19:59:49.240 に答える
0

これにはデリゲートメソッドを使用できます。例えば

モデル

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

利用方法

brand = Brand.find(params[:id])
puts brand.user_name
于 2013-06-27T20:14:57.757 に答える