Я хотел бы назначить два разных «типа» тегов (категории секторов и бесплатные теги) для модели компании, используя acts_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
Может кто-нибудь намекнуть, как я могу сделать это правильно?
Смежный вопрос: это хороший способ сделать это вообще? Было бы лучше, если бы я использовал модель категории для присвоения секторных тегов через объединенную модель?
Спасибо!