2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】アソシエーション 違う名前で呼び出す

Posted at

##目的
アソシエーションを利用して、違う名前で呼び出した方がわかりやすい
けど、どう書いたらいいかわからない
そんな時のオプション、class_nameについてまとめます。

class_nameオプション

関連を設定するモデルクラス名を指定

利用場面としては、関連名と参照先のクラス名を変えたい時に使う

model/event.rb
class Event < ActiveRecord::Base

belongs_to :user
has_many :comments

end

上記はイベントがユーザーに属するぞと
書いてあります。

したがって

@event.user

という感じで、ユーザーをメソッドで呼び出すことができるのですが

.userをここはオーナーと書いた方が意味が通じやすい、というケースは下記のように書き換えられます。

model/event.rb
class Event < ActiveRecord::Base

belongs_to :owner, class_name: 'User'
has_many :comments

end

これで下の記述でも使えるようになります。

@event.owner
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?