1

私のRailsアプリモデルにはオプションがほとんどありません(10以下だと思います)。製品 - カテゴリのようなもので、製品が 1 つまたは複数のカテゴリの一部になる場合があります。しかし、本格的な多対多の構造に取り組むには、カテゴリが少なすぎると思います。さらに、カテゴリのリストは事前に定義されており、ほとんど変更されません。

SQL側からすると、これは次のような内容の文字列フィールドのように見えると思いますcategories:"Fruits|Vegetables|..."

誰かがそのような機能のための既存の宝石を知っているかもしれませんmany-to-many

プラグインを確認acts-as-taggable-onしましたが、このタスクにはあまり適していないと思います。

私が思うような Enum gem はenumerize最適だと思いますが、選択できるのは単一の単一の値のみです。

4

1 に答える 1

1

現在、次の組み合わせで出てきました:

この宝石: https://github.com/pboling/flag_shih_tzu

モデル内:

class Product < ActiveRecord::Base
  KINDS =  { 1 => :fruit, 2 => :vegetable }
  include FlagShihTzu
  attr_accessible *KINDS.values
  as_flags KINDS

次に、ビュー(haml)で:

    =form_for [@product] do |f|
      -Product::KINDS.each do |k, v|
        =f.check_box v
        =f.label v

アップデート:

この問題に対処するさらに別の宝石: https://github.com/joelmoss/bitmask_attributes

于 2012-10-23T08:54:24.817 に答える