0

has many through Relationship: tags と tag list の結合テーブルに、デフォルト値が false のブール型フィールドがあります。

add_column :taggings, :tag_visible, :boolean, :default => false

理論的には、タグ リストには多くのタグを含めることができますが (その逆も可能です)、タグの表示はタグ リストごとにオフ/オンにすることができます。これもネストされたリソースの一部です。Document has_one :tag_list

ほとんどの場合、これはすべて機能しています。デフォルト値は作成時に設定され、各インスタンスを ajax 呼び出しで更新しています。

ただし、tag_list をトークン入力フィールドとして含むドキュメントを更新すると、以前の状態に関係なく、すべてのタグ付けの可視性が false にリセットされます。

どんなリードも大歓迎です。

4

1 に答える 1

0

tag_list モデル内のタグ token_input セッターで、タグ付けモデルの新しいレコードを更新するのではなく、削除して再作成していたことがわかりました。

古いコード:

self.taggings = Tag.ids_from_tokens(tokens, user_id).each_with_index.map {|t,i| Tagging.new(:tag_id => t, :tag_colour => tag_colours[i % tag_colours.size]) }

修理:

self.tag_ids = Tag.ids_from_tokens(tokens, user_id)
self.taggings.each_with_index {|t,i| t.update_attributes(:tag_colour => tag_colours[i % tag_colours.size]) }
于 2013-04-05T03:30:28.523 に答える