Acts-As_Taggable&管理Gem - 未初始化的常量ActsAsTaggableOn :: TagDashboard

时间:2016-09-01 15:08:47

标签: ruby-on-rails ruby rubygems acts-as-taggable-on

我收到此错误:ActionView :: Template :: Error:uninitialized constant ActsAsTaggableOn :: TagDashboard您的意思是? PlanDashboard GoalDashboard TaskDashboard

我真的希望它是UserDashboard但不确定我需要在下面添加或更改。有任何想法吗?非常感谢。

所以我设置了我的Adminstrate gem,我能够显示我的模型(包括用户)。 但是当我点击编辑时,我得到上面的错误。

我使用以下相关宝石

ruby "2.3.1"

gem "rails", "5.0.0.1"

gem "pg", "0.18.4" # postgresql database
gem "acts-as-taggable-on", git: "https://github.com/mbleigh/acts-as-taggable-on" # tagging
gem "administrate", git: "https://github.com/heyogrady/administrate", branch: "rails5"

以下是我的代码:

enter code here`require "administrate/base_dashboard"

class UserDashboard < 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 = {
    owned_taggings: Field::HasMany.with_options(class_name: "::ActsAsTaggableOn::Tagging"),
    owned_tags: Field::HasMany.with_options(class_name: "::ActsAsTaggableOn::Tag"),
    team_group: Field::BelongsTo,
    lead_groups: Field::HasMany,
...
  }

  # 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 = [
    :name,
    :email,
...
  ]

  # SHOW_PAGE_ATTRIBUTES
  # an array of attributes that will be displayed on the model's show page.
  SHOW_PAGE_ATTRIBUTES = ATTRIBUTE_TYPES.keys

  # FORM_ATTRIBUTES
  # an array of attributes that will be displayed
  # on the model's form (`new` and `edit`) pages.
  FORM_ATTRIBUTES = [
    :owned_taggings,
    :owned_tags,
    :team_group,
    :lead_groups,
...
  ]

  # Overwrite this method to customize how users are displayed
  # across all pages of the admin dashboard.
  #
  def display_resource(user)
    user.name
  end

end

1 个答案:

答案 0 :(得分:0)

只需删除Tags中涉及ATTRIBUTE_TYPES的行,如下所示:

ATTRIBUTE_TYPES = {
# taggings: Field::HasMany.with_options(class_name: "::ActsAsTaggableOn::Tagging"),
# base_tags: Field::HasMany.with_options(class_name: "::ActsAsTaggableOn::Tag"),
# tag_taggings: Field::HasMany.with_options(class_name: "ActsAsTaggableOn::Tagging"),
# tags: Field::HasMany.with_options(class_name: "ActsAsTaggableOn::Tag"),
# topic_taggings: Field::HasMany.with_options(class_name: "ActsAsTaggableOn::Tagging"),
# topics: Field::HasMany.with_options(class_name: "ActsAsTaggableOn::Tag"),
user: Field::BelongsTo,
tag_list: Field::String,
id: Field::Number,
title: Field::String,
body: Field::Text,

同时删除TagsCOLLECTION_ATTRIBUTESSHOW_PAGE_ATTRIBUTES中涉及FORM_ATTRIBUTES的行。

如果要在模型上显示/编辑标签,请将此行添加到ATTRIBUTE_TYPES

tag_list: Field::String,

现在您可以在:tag_list,COLLECTION_ATTRIBUTESSHOW_PAGE_ATTRIBUTES中使用FORM_ATTRIBUTES