私は自分の個人的な Web サイトでフォト ギャラリーの構築に取り組んでおり、そのデータはすべて Flickr から API を介して取得されます。
しばらくの間、サイトにアルバムと写真を表示しています。それらはすべて良いです。
次に、Flickr のプレミアム アカウントに登録し、コレクションを使用してアルバムを整理するためのアクセス権を取得しました。
次に、その API を使用して Collection モデルを追加し、すべてのコレクションをプルして、所有者コレクションを指すように各アルバムに parent_id を割り当てました。
各コレクションは子コレクションを持つことができますが、子コレクションと子アルバムを持つことはできません。
この一連の関係を使用して、すべてが機能しています。
Collection.rb:
has_many :children, class_name: "Collection", foreign_key: "parent_id"
belongs_to :parent, class_name: "Collection", foreign_key: "parent_id"
has_many :albums
アルバム.rb:
has_many :photos, :dependent => :destroy
belongs_to :collection
コレクション インデックス アクションですべての最上位コレクションを表示し、各コレクション名で同じインデックス アクションにリンクしますが、collection_id を渡します。これにより、ページがリロードされたときにその ID を使用して、それを親として持つコレクションを見つけることができます。等々。
子コレクションを持たないコレクションが入力されると、アルバムがチェックされ、存在する場合は表示されます。
私が知りたいのは、URL を変更してよりユーザーフレンドリーにする方法です。現在、コレクション インデックスに移動し、第 2 レベルのコレクションにドリルダウンすると、URL は次のようになります。
http://localhost:3000/collections?collection=114
これは正しいですか、皆さんはどうしますか?
いくつかの考えや提案が欲しいだけです。また、コレクションのアルバムが見つかった場合、アルバムのインデックス アクションにリダイレクトされ、コレクション ID が渡されます。URL は次のようになります。
http://localhost:3000/albums?collection=113
私には何かが正しくないように思えますが、もっと良い解決策があると確信しています。