関連名を文字列として持っている場合、関連オブジェクトのハンドルを取得する方法はありますか?
例えば:
o = Order.first
o.customer は、この注文が属する顧客オブジェクトを教えてくれます。
私が持っている場合:
o = Order.first
relationship = 'customer'
私は次のようなことをしたいと思います:
customer = eval("o.#{relationship}")
私は eval がひどいオプションであることを知っており、避けるべきです。これを行う最善の方法は何ですか (この例では eval が機能しないため)。
私はこれを機能させました:
customer = o.association(relationship)
後で、関連付けはパブリック API の一部ではないため、使用すべきではないことがわかりました。コード行を取得したときに、ページの上位にある (その関係を参照していた) ため、機能しなくなりました。
どんなアイデアも素晴らしいでしょう!