Rails Froala Editor во вложенной форме activeadmin - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть некоторые проблемы с гемом activeadmin_froala_editor.

В моей форме я могу использовать редакторы froala, она работает, но во вложенных формах она не работает, но я не понимаю, почему.

Это часть моего кода:

   form do |f|
        f.inputs "En-tête" do
          f.input :title
          f.input :content, as: :froala_editor
          f.input :banner
        end

        f.inputs "Prix" do
          f.has_many :rewards do |price|
            price.input :name
            price.input :picto
            price.input :description, as: :froala_editor
            price.input :quantity
        end
     end
   end

Первая фроала работает отлично, но вторая не появляется.

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Необходимо обновить гем "activeadmin_froala_editor"

$>bundle update activeadmin_froala_editor

Также убедитесь, что версия обновлена ​​в gemfile.lock.Если вы находитесь на ранней стадии разработки, вы можете стереть ее.

$> rm Gemfile.lock
$> bundle update 
0 голосов
/ 03 декабря 2018

Дополнительные подчиненные формы вознаграждений динамически добавляются на страницу.Чтобы иметь несколько экземпляров froala_editor на одной странице, элементы должны иметь уникальные хуки (см. https://www.froala.com/wysiwyg-editor/examples/inline-two-instances), и вам придется самостоятельно присоединять редактор с помощью javascript. Это сложно, но возможно.жертвой UX сделайте следующее:

Удалите поле описания из формы и настройте блок показа следующим образом:

show do |en_tete|
  attributes_table do
    row :title
    row :content
    row :banner
    row :rewards do        
      en_tete.rewards.each do |reward|
        h4 { reward.name }
        span { reward.picto }
        span { reward.quantity }
        div { reward.description.html_safe }
        br
        # use rake routes to find the correct path helper
        a(href: edit_admin_reward_path(reward) { "edit" } 
      end
    end
  end
end

Вам нужно будет зарегистрировать модель вознаграждения в ActiveAdmin, котораяВы могли бы сделать так:

ActiveAdmin.register Reward do
  belongs_to :en_tete, :parent_class => "EnTete", :optional => true

  form do |f|
    f.inputs do
      f.input :name
      f.input :picto
      f.input :description, as: :froala_editor
      f.input :quantity
    end
    f.actions do
      f.action :submit          
      f.cancel_link(admin_en_tete_path(f.object.en_tete))
    end
  end

  # if you wish you could add this
  controller do
    def show
      redirect_to admin_en_tete_path(resource)
    end
  end

end
...