Acts_as_taggable_onを使用して、2つの異なる「タイプ」のタグ(セクターカテゴリと無料のタグ付け)をCompanyモデルに割り当てたいと思います。NB:私はRoRに不慣れです!
これは、標準のテキスト入力フィールドを使用するだけで簡単に実行できますが、1つのタイプ(事前定義された固定セクターカテゴリタグ)でチェックボックスを使用して、ユーザーが入力フィールドにカンマ区切りのタグを追加できるようにします。 。
私はこの問題をさまざまな方法で試してきました...この質問に触発されたもの...しかし私はそれを機能させることができません
これが私がこれまでに持っているものです:
# models/company.rb
class Company ...
acts_as_taggable_on :tags, :sectors
has_many :taggings,
:as => :taggable,
:include => :tag,
:class_name => "ActsAsTaggableOn::Tagging",
:conditions => { :taggable_type => "Company" }
has_many :sector_tags,
:through => :taggings,
:source => :tag,
:class_name => "ActsAsTaggableOn::Tag",
:conditions => {:context => "sectors"}
end
フォームで(simple_form gemを使用)私は...
# views/companies/_form.html.haml
= simple_form_for @company do |f|
= f.input :name
= f.association :sector_tags, :as => :check_boxes, :hint => "Please click all that apply"
= f.input :tag_list
= f.button :submit, "Add company"
そして私の会社のコントローラーには
# controllers/companies_controller.rb
def create
@company = current_user.companies.build(params[:company])
if @company.save
...
end
ただし、これにより検証エラーが発生します。
ActiveRecord::RecordInvalid in CompaniesController#create
Validation failed: Context can't be blank
誰かが私がこれを正しく行う方法を示唆できますか?
関連する質問は、これがそれを行うための良い方法であるかどうかです。ジョイントモデルを介してセクタータグを割り当てるためにカテゴリモデルを使用する方がよいでしょうか?
ありがとう!