Rails 嵌套 activeadmin 形式的 Froala 编辑器
Rails Froala Editor in nested activeadmin form
我对 activeadmin_froala_editor gem 有一些疑问。
在我的表单中,我可以使用 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
第一个 froala 工作正常,但第二个没有出现。
感谢您的帮助!
额外的奖励子表单是动态添加到页面的。要在一个页面上有多个 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 中注册 Reward 模型,您可以这样做:
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
gem"activeadmin_froala_editor"需要更新
$>bundle update activeadmin_froala_editor
还要确保版本已在 gemfile.lock 中更新。
如果您处于早期开发阶段,您可以将其删除。
$> rm Gemfile.lock
$> bundle update
我对 activeadmin_froala_editor gem 有一些疑问。
在我的表单中,我可以使用 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
第一个 froala 工作正常,但第二个没有出现。
感谢您的帮助!
额外的奖励子表单是动态添加到页面的。要在一个页面上有多个 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 中注册 Reward 模型,您可以这样做:
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
gem"activeadmin_froala_editor"需要更新
$>bundle update activeadmin_froala_editor
还要确保版本已在 gemfile.lock 中更新。 如果您处于早期开发阶段,您可以将其删除。
$> rm Gemfile.lock
$> bundle update