gpt4 book ai didi

ruby-on-rails - 如何让 rails_admin gem 识别带有acts_as_taggable_on tag_lists 的模型?

转载 作者:行者123 更新时间:2023-12-04 20:01:37 26 4
gpt4 key购买 nike

我正在使用 rails_admin 和 act_as_taggable_on gems 设置一个 rails 应用程序。

在项目的早期尝试确保可以做到这一点时,我发现 this issue在导致 this gem 的 rails_admin github 页面上它仍然在 rails_admin github wiki 上的插件列表中。所以似乎可以做到。

我首先按照 rails_admin、acts_as_taggable_on 和 rails_admin_tag_list 的自述文件中的设置说明进行操作。我在应用程序上有一些模型,在向它们添加任何标记功能之前,它们会在 rails_admin 上显示并正常工作。

这是我尝试添加标签的模型示例:

class Location < ActiveRecord::Base
acts_as_taggable
acts_as_taggable_on :regions

private

def location_params
params.require(:location).permit(:lat, :long, :tag_list => [], :region_list => [])
end
end

在这种格式中,我在访问 rails 管理页面时收到一条闪现通知:“找不到模型‘位置’”。位置模型也不会显示在模型列表中。

我还没有构建页面来添加数据,但我确实通过 rails 控制台向我的数据库添加了一个位置,并使用acts_as_taggable_on README 中的示例为该位置的列表添加了标签:
a = Location.new
a.region_list.add("awesome")

执行此操作并再次查看 rails_admin 页面后,我仍然看到“找不到模型‘位置’”闪光通知。但我也在模型列表中看到了 Location。

单击位置给我以下错误:
NoMethodError at /location

undefined method `[]' for #<RailsAdmin::Adapters::ActiveRecord::Property:0x00000101fabd90>

更好的错误显示
if tag_types.include?(properties[:name]) 

下面的行是故障行:
RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|

model = parent.abstract_model.model

if defined?(::ActsAsTaggableOn) && model.taggable?
tag_types = model.tag_types

if tag_types.include?(properties[:name])
name = "#{properties[:name].to_s.singularize}_list".to_sym
fields << RailsAdmin::Config::Fields::Types::TagList.new(parent, name, properties)

end
end

我仍然很新,但目前似乎没有很多关于这两个 gem 之间相互作用的文章。我很感激您提供的任何见解,以使 Rails 管理员能够适本地显示带有 tag_lists 的模型。谢谢!

最佳答案

好的,让我先说我不知道​​我在做什么。但我可能有线索。
rails_admin_tag_list尚未针对 Rails 4 进行更新,看起来您正在使用它(您好,强参数!)。我猜你正在使用 rails_admin 的最新版本,因为您使用的是 Rails 4。

根据您已经完成的调试工作,问题似乎出在 RailsAdmin::Adapters::ActiveRecord::Property 上。 (或者它至少与您的问题相邻),看起来它是在 rails_admin 的较新版本中添加的. (或者至少在没有彻底研究的情况下看起来是这样。)

rails_admin_tag_list 上有一个未合并的拉取请求看起来它解决了这个问题 here .

所以,我建议尝试指定 rails_admin_tag_list 的 fork/提交在您的 Gemfile ,像这样:
gem 'rails_admin_tag_list', :git => 'git://github.com/imouaddine/rails_admin_tag_list.git', :ref => 'a9a4e31af6fdd2124110d0dff81ab97950803e65'
祝你好运!

关于ruby-on-rails - 如何让 rails_admin gem 识别带有acts_as_taggable_on tag_lists 的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29136027/

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