0

私はゲームと呼ばれるモデルを持っています。:categorytoptens と :categorygames の 2 つの関連付けがあります。

has_many :categorytoptens
has_many :categories, :through => :categorytoptens, :dependent => :destroy

has_many :categorygames
has_many :categories, :through => :categorygames, :dependent => :destroy

カテゴリを編集するために、これを activeadmin games.rb ファイルに追加しました。

    f.input :categories, :as => :check_boxes, :collection => Category.all, :member_label => :navititle_de

カテゴリ モデルからすべてのカテゴリのチェックボックスのリストを表示し、選択内容をカテゴリゲームに保存します。したがって、すべてが正常に機能します。

BUT: ゲーム モデルで :categorytoptens と :categorygames の順序を変更すると、カテゴリは categorytoptens に保存されます。

has_many :categorygames
has_many :categories, :through => :categorygames, :dependent => :destroy

has_many :categorytoptens
has_many :categories, :through => :categorytoptens, :dependent => :destroy

私の質問:

a.) 同じモデル関連付けを持つ複数の has_many を持つことは「許可」されていますか? モデルの関連付けは互いに「上書き」しますか? b.) activeadmin で編集するモデルを指定する方法はありますか?

どうもありがとう!

4

1 に答える 1

1

同じ名前の 2 つの has_many アソシエーションを定義するべきではありません!! 関連付けの名前を変更しようとしないでください

has_many :categorygames
has_many :games_categories, :through => :categorygames, :dependent => :destroy

has_many :categorytoptens
has_many :top_ten_categories, :through => :categorytoptens, :dependent => :destroy

A) 同じ名前の 2 つの関連付けを定義できますが、前の関連付けを上書きして後続します。関連付けごとに適切な名前 (uniq) を試してください

B) 詳細情報が必要です。アクティブ管理でリソースを管理しますか?

試す

ActiveAdmin.register YourResourceName do
end

リソースのカスタム名も設定できます。このリンクに従ってくださいhttp://activeadmin.info/docs/2-resource-customization.html#rename_the_resource

于 2013-03-19T10:49:28.747 に答える