Сохранение тэгов с помощью activ_as_taggable и activeadmin - PullRequest
2 голосов
/ 02 декабря 2011

Я использую ActiveAdmin и acts_as_taggable в приложении rails 3, и я могу получить список тегов, который будет отображаться в виде контрольного списка на страницах редактирования, и я могу добавить теги с помощью консоли, а затем удалить они используют форму, но при сохранении формы возникают ошибки при попытке добавить теги с

«Проверка не удалась: контекст не может быть пустым»

У меня только один контекст тегов (теги).

Код формы ActiveAdmin:

form    :html => { :multipart => true } do |f|
    f.inputs "Details" do
        f.input :title
        f.input :itinerary, :as => :select, :collection => Itinerary.all
        f.input :description
        f.input :address
        f.input :contact_details
        f.input :url
        f.input :phone
        f.input :nearest_tube
        f.input :timetable
        f.input :price
  f.input :tags, :as => :check_boxes, :multiple => true, :collection => @tags
        f.input :image, :as => :file
    end
    f.buttons
end

А в модели у меня

class Ticket < ActiveRecord::Base
has_and_belongs_to_many :itinerary
acts_as_taggable_on :tags
has_attached_file :image, :styles => { :medium => "210x140>", :thumb => "100x100>" }  
end

Если я добавлю

  attr_writer :tag_ids

для модели: больше не возникает ошибок при сохранении, но все еще не сохраняются выбранные теги в списке.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 20 января 2012

Это не использует флажки, но это работало хорошо для меня:

f.input :tag_list, :hint => 'Comma separated'
1 голос
/ 07 марта 2013

Вдохновленный ответом Натана, tag_list берет список имен тегов, поэтому вы можете использовать флажки, передавая коллекцию имен тегов:

f.input :tag_list, :as => :check_boxes, 
  :collection => ActsAsTaggableOn::Tag.all.map(&:name)
...