Как применять теги с actions_as_taggable_on с помощью флажков?

Я хотел бы назначить два разных «типа» тегов (категории секторов и свободное тегирование) модели компании, используя actions_as_taggable_on . NB: Я новичок в RoR!

Это легко сделать, если использовать стандартные поля ввода текста, но я хотел бы использовать флажки для одного типа (тег категории фиксированного сектора, который предопределен), а затем позволить пользователю добавлять теги, разделенные запятыми, в поле ввода.

Я играл с этой проблемой по-разному, ... один, вдохновленный этим вопросом ... но я не могу заставить его работать

Вот что у меня есть на данный момент:

# 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) у меня есть ...

# 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

Может ли кто-нибудь намекнуть, как я могу сделать это правильно?

Смежный вопрос: хороший ли это способ вообще? Не лучше ли мне использовать модель категорий для назначения тегов секторов с помощью совместной модели?

Спасибо!

6
задан Community 23 May 2017 в 12:07
поделиться