0
2つのテーブルを結合して値にアクセスできました。しかし、値にアクセスするには、2つのメソッドを呼び出す必要があります。私は何とか2つのコールを1つのコールにすることができるかどうか疑問に思っていますか?私は@company.ceo_name
1回の呼び出しでテーブルへのアクセスが連結されました
2つのテーブルを結合して値にアクセスできました。しかし、値にアクセスするには、2つのメソッドを呼び出す必要があります。私は何とか2つのコールを1つのコールにすることができるかどうか疑問に思っていますか?私は@company.ceo_name
1回の呼び出しでテーブルへのアクセスが連結されました
ようなもので上記@company.ceo.name
を呼び出すことができますどのように
# models/company.rb
class Company < ApplicationRecord
has_one :ceo
end
# models/ceo.rb
Class Ceo < ApplicationRecord
belongs_to :company
end
# controllers/company_controller.rb
@company = Company.join(:ceo)
# views/company/index.html.erb
# ...somewhere in the view
#{@company.ceo.name}
あなたはあなたを助けるためにdelegate
を使用することができます。あなたのcompany
モデルで
、その後
delegate :name, to: :ceo, prefix: true
、あなたの呼び出しが提供されます、
@company.ceo_name
#=> "xyz"
ちょうど私が探しているもの!ありがとう! – user3920567
のActiveRecordの仕組みではありません。ただ '@ company.ceo.name'を使用してください。本当にしたいのであれば、 'Company'に' ceo_name'アクセサを定義することができます: 'def ceo_name; ceo.name;終わり。 – meagar