gpt4 book ai didi

ruby-on-rails - 如何在管理中设置 ActionText (Rails 6.1)

转载 作者:行者123 更新时间:2023-12-03 08:17:55 25 4
gpt4 key购买 nike

我正在尝试在管理仪表板内设置操作文本。我已经关注了installation steps on the Rails Guides Overview page 。然后,当尝试将属性添加到/app/dashboards/lesson_dashboard.rb 时,我收到错误。

当我尝试body: Field::RichText时,我得到:uninitialized constant Administrate::Field::RichText

当我尝试body: ActionText::RichText时,我得到:wrong number of arguments (given 4, expected 0..1) .

当我关注instructions in the Administrate Wiki时,我得到undefined method 'body'当它到达 <%= f.rich_text_area field.attribute %> 行时.

知道这个属性叫什么或者为什么我会收到这些错误吗?

应用程序/仪表板/lesson_dashboard.rb:

require "administrate/base_dashboard"

class LessonDashboard < Administrate::BaseDashboard
# ATTRIBUTE_TYPES
# a hash that describes the type of each of the model's fields.
#
# Each different type represents an Administrate::Field object,
# which determines how the attribute is displayed
# on pages throughout the dashboard.
ATTRIBUTE_TYPES = {
course: Field::BelongsTo,
documents: Field::ActiveStorage.with_options(
show_display_preview: false,
destroy_url: proc do |namespace, resource, document|
[:delete_document_course, resource, { document_id: document.id }]
end
),
id: Field::Number,
title: Field::String,
# body: Field::Text,
body: RichTextAreaField,
created_at: Field::DateTime,
updated_at: Field::DateTime,
}.freeze

# COLLECTION_ATTRIBUTES
# an array of attributes that will be displayed on the model's index page.
#
# By default, it's limited to four items to reduce clutter on index pages.
# Feel free to add, remove, or rearrange items.
COLLECTION_ATTRIBUTES = %i[
title
course
].freeze

# SHOW_PAGE_ATTRIBUTES
# an array of attributes that will be displayed on the model's show page.
SHOW_PAGE_ATTRIBUTES = %i[
course
title
body
documents
created_at
updated_at
].freeze

# FORM_ATTRIBUTES
# an array of attributes that will be displayed
# on the model's form (`new` and `edit`) pages.
FORM_ATTRIBUTES = %i[
course
title
body
documents
].freeze

# COLLECTION_FILTERS
# a hash that defines filters that can be used while searching via the search
# field of the dashboard.
#
# For example to add an option to search for open resources by typing "open:"
# in the search field:
#
# COLLECTION_FILTERS = {
# open: ->(resources) { resources.where(open: true) }
# }.freeze
COLLECTION_FILTERS = {}.freeze

# Overwrite this method to customize how lessons are displayed
# across all pages of the admin dashboard.
def display_resource(lesson)
lesson.title
end

# permitted for has_many_attached
def permitted_attributes
# super + [:attachments => []]
super + [:documents => []]
end

end

应用程序/模型/lesson.rb:

class Lesson < ApplicationRecord

belongs_to :course
has_many_attached :documents

validates :title, presence: true

end

最佳答案

@rmlockerd 的答案非常好 - 但现在使用 Rails 7 来实现这一点会更简单,因为并不是每个项目都需要 webpacker。

我对他的流程的调整是:

  • 在新生成的管理布局文件中,将这两行添加到 <head> :
  •     <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
    <%= javascript_importmap_tags %>

    而不是 javascript_pack_tag 。您还可以删除生成的其他文件( _flash_icons 等)。只需使用标准管理 - 除非您想覆盖它们。

  • 没有必要

  • 没有必要

  • 我在我的项目中使用了 Rails-tailwind gem,因此我可能已经在将所有这些额外样式连接在一起方面完成了步骤 3 和 4 已经完成的工作。

    关于ruby-on-rails - 如何在管理中设置 ActionText (Rails 6.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68785238/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com