1

これは一般的な設計上の問題ですが、RoR で実装される予定であり、私は非常に初心者です。また、これは私の最初の質問だと思うので、優しくしてください:)

シナリオは次のとおりです。

私は資産モデルを持っています。各アセットは特定の部屋に配置されるため、ロケーション モデルとの 1 対多の関係も必要です。十分に単純です。ただし、一部の部屋 (場所) は別名でも使用されます (例: 123 は別名図書館)。ユーザーが特定のアセットに関する情報を更新したい場合、正確な部屋番号を知っているかどうかを気にせずに検索するだけで、その部屋のアセットのリストが表示されるようにしたいと考えています。

明確にするために、複数のエイリアスが存在する可能性があります。

質問は次のとおりです。

Location が 1 対多の関係を持つ Alias モデルをお勧めしますか? それとも、自己参照型 (一種の階層型) 関連付けの方がよいでしょうか? それとも何か他のものでしょうか?私が想像できることから、前者は同じ種類の情報について異なるテーブルの列を照会する必要があり、後者は正しくないようです (エイリアスは場所と同じではありません)。

4

1 に答える 1

2

これは、タグ付けプラグインのacts-as-taggable-onを使用するのに適した領域かもしれません:

https://github.com/mbleigh/acts-as-taggable-on

モデルでは、次のことができます。

class Location < ActiveRecord::Base   
  acts_as_taggable_on :aliases 
end

次に、コントローラーで次のようにします。

Location.tagged_with("library", :on => :aliases)
于 2011-07-07T20:48:15.577 に答える