0

私の次の質問は、Ruby、Rails、または一般的な oOP の概念で物事が実際にどのように機能するかについての適切な理解の欠如を示している可能性があり、質問する前に多くのことを考え、検索したと信じていますが、正しい検索クエリを作成することさえできませんでした適切な答えを見つけるので、とにかくここで私が達成したいことです...

song = Artist.first.albums.first.songs.first 

これは-私の理解では-曲モデルを呼び出し、アーティストモデルとアルバムモデル参照を曲モデルに渡し、DBからデータを取得するためのSQLクエリを形成します-私はActiveRecordを使用しているためです。

本当の問題; ソングモデルと呼ばれるアーティストとアルバムを知る方法はありますか? これは、アルバム/アーティストの余分な参照を渡したくない多対多の関係で特に役立ちます。

なんらかの理由でモデルに関数がある場合、この Song インスタンスを誰が作成したかを知ることができますか?

4

1 に答える 1

0

それは連鎖が多すぎて、物事を複雑にしすぎています。

ただし、曲のモデルでとの関係が宣言されている場合は、曲のアーティストとアルバムを取得することsong.artistも、取得することもできます。song.albumbelongs_to :albumbelongs_to :artist

ただし、次のようにすることができます。

artist = Artist.first
album = artist.albums.first
songs = album.songs

このようにして、アーティスト、必要な彼/彼女のアルバム(この場合は最初のアルバム)、およびその曲をすべて異なる変数に設定し、それらを個別に処理できます。

于 2012-05-31T09:50:09.623 に答える