railsでドロップダウンボックスとradio button表示の大きなシステムテーブルを実現する処理方法


  • プルダウンボックスの実現形態
  • 設計方式のため、すべてのシステムパラメータは大きなテーブル(sys_params)に入れられる.type_を通過flagは、異なるパラメータタイプを表す.
    たとえば
    学校のタイプは8種類あります.codeはそれぞれ1-11である.type_flagは「000 E」
    学校の種類
    string
    1.大学、2.中学校、3.小学校、4.幼稚園、5.党学校、6.研修センター、7.特殊学校、8.研究所、9.アマチュア学校、A.職業学校、B.その他
    000E
    学校情報表を維持する必要があります.具体的な学校の情報では,学校カテゴリを入力する必要があり,インタフェースではドロップダウンボックスを用いて処理する必要がある.
    実装の手順.
  • はschooleです.rb modelファイルにbelongs_を追加to . belongs_to :sys_param, -> { where type_flag: '000E' }, :foreign_key => :lx ,:primary_key=>:idは外部キーがlx(タイプ)でsys_に対応することを意味するparamのidここで満たす条件はtype_flag = '000E'

  • はショー中です.html.Erbでsimple_を使用するformのassociationはドロップダウンボックス'000 E'),:input_に処理されます.html => { :class => 'span3 chzn-select'}, :label => GisSchool.human_attribute_name(:lx), :label_method =>  :display_school_lx_name  %>
  • 注意collection:SysParam.all().where(:type_flag=>'000 E')文.このようにしてのみ、条件を満たす(type_flag='000E')条件がドロップダウンボックスに表示されます.そうしないと、すべてのデータがドロップダウンボックスに表示されます.
  • :label_method =>  :display_school_lx_nameという文の左右は、カスタム表示ドロップダウンボックスに表示される内容です.sys_paramのmodelではこのように定義されています.
    def display_school_lx_name
       "#{code} - #{value}"
    end
  • optionsはselect 2のクエリー可能なドロップダウン・ボックス・コンポーネントを使用します.http://ivaynberg.github.io/select2/index.html
  • radio buttonを用いた方式の実現
  •           
    '0009'), :id, :name, { item_wrapper_tag: false } do |b| %> 'btn btn-primary'){ b.radio_button + b.text } %>

    ここでSysParamはこのモデルに関連付ける必要はありません.
    ここで、idと:nameはSysParmasのフィールド名です.nameはradioに表示する文字です.idは、転送および保存するコンテンツです.
    codeとnameはSysParamのフィールドです.