首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ActiveAdmin和Friendly_id时的ActiveRecord :: ReadOnlyRecord

使用ActiveAdmin和Friendly_id时的ActiveRecord :: ReadOnlyRecord错误通常是由于在尝试更新或删除一个已经被标记为只读的记录。这可能是由于在使用ActiveAdmin和Friendly_id时,某些设置或配置不正确导致的。

以下是一些可能的解决方案:

  1. 确保在ActiveAdmin中正确配置了资源。在ActiveAdmin中,您需要为每个模型定义一个资源,如下所示:
代码语言:ruby
复制
ActiveAdmin.register Post do
  # 配置资源
end
  1. 确保在Friendly_id中正确配置了模型。在Friendly_id中,您需要在模型中添加friendly_id方法,并指定一个唯一的字段作为slug。例如:
代码语言:ruby
复制
class Post< ApplicationRecord
  extend FriendlyId
  friendly_id :title, use: :slugged
end
  1. 确保在ActiveAdmin中正确配置了表单。在ActiveAdmin中,您需要为每个资源定义一个表单,如下所示:
代码语言:ruby
复制
ActiveAdmin.register Post do
  form do |f|
    f.inputs "Details" do
      f.input :title
      f.input :content
    end
    f.actions
  end
end
  1. 确保在ActiveAdmin中正确配置了控制器。在ActiveAdmin中,您需要为每个资源定义一个控制器,并在其中添加正确的操作,如下所示:
代码语言:ruby
复制
ActiveAdmin.register Post do
  controller do
    def create
      create! { admin_post_path(resource) }
    end

    def update
      update! { admin_post_path(resource) }
    end
  end
end
  1. 确保在Friendly_id中正确配置了路由。在Friendly_id中,您需要在路由中添加friendly_id约束,以便正确解析slug。例如:
代码语言:ruby
复制
Rails.application.routes.draw do
  get ':slug' => 'posts#show', as: :post, constraints: { slug: /.*/ }
end

如果您仍然遇到问题,请检查您的代码和配置,并确保您已经正确实现了ActiveAdmin和Friendly_id的所有必要组件。如果您需要进一步的帮助,请随时向我们咨询。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

EasyCVR使用NSQ处理消息topicchannel理解

EasyCVR 使用 NSQ 进行消息处理推送,目前发现对 topic channel 很难理解其使用,官网解释也是复杂难懂,因此直接写代码进行确认。.... // 如果不需要分布式,只需要发送消息,暂时不需要分布式,可以直接连接 nsqd tcp 地址 // 实测使用 ConnectToNSQLookupd 过程中,如果是新 topic... channel,需要等待大约40s时间才能收到第一次消息,后面立刻能收到消息 // 不使用分布式,直接使用 ConnectToNSQD,基本立刻能收到消息 //err = consumer.ConnectToNSQLookupd...停止生产者,一般在停止服务,停止进程时候需要调用 producer.Stop() } 经过代码测试总结,对 topic channel 理解如下: 1....C,topic=topic1 body=“hello world” A B 均可以收到信息 因此可以根据使用场景,来进行对应 channel 设置。

79830

OpenLDAP使用BDB一些配置维护方法

一、 配置部份 在基本配置完成之后,可以在slapd.conf设置一些提高安全效率选项   cachesize 5000   checkpoint 1024 5   cachesize是ldap...这个缓存是openldap自己维护,与bdb库无关。   为了提高效率bdb在修改数据库,是先修改内存里面的,然后分批回写到数据库文件里面。...因此并不推荐使用该选项。 二、维护   1) 数据库日志归档(或者叫备份)   有两种备份方法     a)标准备份     这种备份方法,要求是在备份时候停止对数据库写操作。...正常恢复是,当数据库文件日志文件都没有被损坏,执行db_recover,不要带参数。...当采用热备份方法所做备份,必段要用热恢复方法来恢复   热恢复是,当数据库文件或者日志文件损坏,在热备份备份目录下,执行db_recover -c 来恢复数据。

2K20

Info模式下隐形杀手(SpringMVC同时使用FormattingConversionServiceFactoryBean出现问题)

我个人习惯项目运行时候是debug模式跑着,但是,问题来了,启动竟然抛点异常。。。。。可是上周还好好,让我有点怀疑人生了。...但是还有一个但是,我把日志模式改为info模式,这个贱贱错误又隐藏起来了,项目一切正常运行,是没问题。声明一点啊,这个错误不是跟日志模式有关。        ...出现问题根源,就是springmvc框架加载项目的时候,同时使用了加载静态资源定义了全局日期转换器。 1 <!...Integer mortgagerStatus; //抵押标记 17 private String approvalAuthority; //批准机关 2、不要使用...标签去加载静态资源,而是用以下方式加载,意思就是没有映射到URL请求交给默认web容器中servlet进行处理: 1    <!

3.7K50

Wi-Fi Calling之多设备使用5G构架

1.2.1 当前苹果实现 对于当前苹果庞大生态系统,其也致力于一套多终端电话接听系统,具体实现就是要所有苹果设备使用同一个apple ID、同时蓝牙开启并且在同一个Wi-Fi下,当有电话时候iPhone...其他设备都会有振铃,这样就可以用其他设备比如iPad接电话了。...但是如果注意的话会发现,iPad等设备应该显示类似“使用iPhone通话中”字样,原因就是此时依然是使用iPhone在接电话,只是作为一个中继器将语音转给iPad等设备,从而实现了多设备接电话,而此时在...iPhone其他设备会有如下显示为一个“When Nearby”模式: 从使用条件可以看出这个其实有很大弊端: 1、首先必须要在同一个Wi-Fi下。...Wi-Fi Calling基本内容到这篇基本就结束了,希望这五篇文章可以在通信道路生活上有所帮助。

1.2K30

通信|Wi-Fi Calling之多设备使用5G构架

1.2.1 当前苹果实现 对于当前苹果庞大生态系统,其也致力于一套多终端电话接听系统,具体实现就是要所有苹果设备使用同一个apple ID、同时蓝牙开启并且在同一个Wi-Fi下,当有电话时候iPhone...其他设备都会有振铃,这样就可以用其他设备比如iPad接电话了。...但是如果注意的话会发现,iPad等设备应该显示类似“使用iPhone通话中”字样,原因就是此时依然是使用iPhone在接电话,只是作为一个中继器将语音转给iPad等设备,从而实现了多设备接电话,而此时在...iPhone其他设备会有如下显示为一个“When Nearby”模式: 从使用条件可以看出这个其实有很大弊端: 1、首先必须要在同一个Wi-Fi下。...Wi-Fi Calling基本内容到这篇基本就结束了,希望这五篇文章可以在通信道路生活上有所帮助

78710

详解Python项目开发自定义模块中对象导入使用

背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中对象;2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目最好也能养成这样好习惯...本文介绍Python自定义模块中对象导入使用。...继续执行下面的代码: >>> import child.add >>> child.add.add(3,5) 8 自定义模块中对象成功被导入并能够正常使用,也就是说,如果要使用对象在子模块中,应该单独使用...或者使用下面的方法: >>> from child import add >>> add.add(3,5) 8 接下来在IDLE中单击菜单“Restart Shell”恢复初始状态,然后执行下面的代码:...原因在于,如果文件夹作为包来使用,并且其中包含__init__.py文件,__init__.py文件中特殊列表成员__all__用来指定from ... import *哪些子模块或对象会被自动导入

3K50

locationhash部分使用window.onhashchange实现ajax请求内容使用浏览器后退前进功能

在js跨域双向数据传递可以用iframe加上location.hash来实现,在研究这个时候深入学习了一下hash特性。  ...当只有hash部分发生变化时,浏览器历史记录会产生记录,但不会向服务器发出请求,这时按后退键地址栏uri会变化但页面内容不变。  ...下面就讲述一下hash结合ajax使用,ajax每次取数据页面更新后浏览器并不产生历史记录,也就是说后退前进按钮失去应用效用,这时可以结合hashwindow.onhashchange来使用,...注意ie6、7均不支持onhashchange,但可以用setInterval定期检查hash改变,或者onload中检查方法。  ...3.在使用window.onhashchange检测hash值获取历史数据。

908100

解决对象构建混乱困境:使用构建者模式提高代码质量效率

定义先来看下它定义。 建造者模式,是将一个复杂对象构建与它表示分离,使得同样构建过程可以创建不同表示。小二哥就问大家,看到这个定义懵逼不懵逼?什么叫对象构建和它表示分离?...构建者模式简介我们一起来理解下对象构建和它表示分离。先分开来看,一个是对象构建,另一个是对象表示。对象表示,可能不太好理解。让我们换一种问法:怎么表示一个对象?...结合起来意思就是:构建一个对象过程该对象最终展示出来要分开来看看构建者模式包含角色: 既然是构建者构建对象,那这里面必然包含构建者类对象类(又可以称为产品类)。...我们提倡面向接口编程,那构建者也就有对应抽象类(抽象构建者)实现类(具体构建者)。还有一个角色是指导者。它调用具体构建者来创建复杂对象。...给大家留个小问题:我们日常工作中碰见过哪些使用构建者模式情况呢?期待大家反馈哦!

29400

Windows下C++使用thread无法识别threadmutex相关库解决

CLionC++编译器是正常,以前也跑过好几个项目,使用其他STL库函数也正常,唯独使用thread时报无法识别的错,所有thread都划上了红线。如下图所示: ?...(fix available) 问题解决过程 因为threadmutex是C++11才引入,所以一开始考虑是不是CMakeList上没有加编译选项,于是加上 set(CMAKE_CXX_FLAGS...后来受到博客CLion安装mingw并配置以支持c++11多线程编程启发,重新安装mingw编译器,但是不成功。...又看到博客mingw-w64安装支持c++11中thread(windows下)操作,发现关键是在安装mingw需要将Thread选项设为posix。重新安装mingw解决问题。 ?...总结 不能使用thread是因为mingw编译器不支持thread,需要重新安装mingw,安装方法在引用两篇博客里都有。同时需要确保建立工程使用是C++11及以上标准。

3.3K20

使用dbms_stat采集统计信息estimate_percentcascade默认值

--此处理解有误,按照官方文档介绍,estimate_percent默认值是DBMS_STATS.AUTO_SAMPLE_SIZE,由Oracle根据算法判断设置采样比例,并不是默认为100%,感谢...再查询dba_indexes表,看到索引IDX_T2相关统计列已经有值了,说明索引也进行了分析,即CASCADE默认值是TRUE。...总结: 使用dbms_stats.gather_table_stats(ownname=>'SYS', tabname=>'T2');方式采集统计信息, 1、estimate_percent值默认是100%...(其实estimate_percent可以设置为NULL,100%作用相同,我理解NULL不设这个值也相同,根据三段论传递,那么不设estimate_percent即默认是100%)。...2、CASCADE默认值是TRUE,即会对表、索引列都会进行分析采集统计信息。

2.6K80

优化爬虫程序使用代理IP出现TIME_WAITCLOSE_WAIT状态

图片为了提高爬虫程序效率,我们通常使用代理IP来同时访问多个网站,避免被封禁。但是,使用代理IP也会带来一些问题。...在Linux系统下,我们经常会遇到TIME_WAITCLOSE_WAIT状态问题。TIME_WAIT是TCP连接终止一种状态,它表示主动关闭连接一方等待对方的确认。...为了解决这个问题,我们可以通过调整Linux内核参数来减少TIME_WAIT状态数量。CLOSE_WAIT是TCP连接终止另一种状态,它表示被动关闭连接一方等待应用程序关闭套接字。...("Status code:", resp.StatusCode)fmt.Println("Content:", content)}总之,作为一个爬虫程序,需要注意使用代理IP可能产生TIME_WAIT...CLOSE_WAIT状态,并采取相应措施来优化Linux系统应用程序。

34830

WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls InkCanvas 加上背景色按钮方法

本文来告诉大家如何在 WPF 应用 HOST 了 UWP InkCanvas 控件,给 InkCanvas 控件设置背景色,加上按钮等业务功能实现方法 在上一篇博客有告诉大家如何在 WPF 里面使用上...但是在 WPF 里面 HOST 了 UWP 控件方式,相当于将 UWP 作为一个窗口嵌入到 WPF 应用里面,这就意味着在 UWP 控件所在范围,不能使用 WPF 渲染,在此范围里面的元素都被...让 UWP 控件项目作为实际 UWP 自定义控件编写项目,咱将在 UWP 控件项目里面完成所有的自定义逻辑 如何创建项目如何组织,还请参阅 官方文档 本文这里就不多说了 回到如何给 UWP ...以上代码放在 github gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码...如果你想持续阅读我最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我主页 本作品采用 知识共享署名-非商业性使用-相同方式共享

2.2K20

Data Access 之 MyBatis Plus(六)- ActiveRecord

一、ActiveRecord ActiveRecord 是 ORM 一种实现方式,在 Ruby PHP 中使用较多,ActiveRecord 特点是模型类一个实例化对象对应数据库表中一行记录...MyBatis Plus 框架中也实现了 ActiveRecord使用 IDEA 创建一个新 Maven 项目 mybatis-plus-ar,相关依赖可以参考前面工程中依赖。...新建 entity 包并新增 Tesla 实体类,在 MyBatis 中使用 ActiveRecord 要将实体类继承 Model 类并重写 pkVal() 方法返回模型类主键。...二、ActiveRecord CRUD 操作 ActiveRecord 特点是模型类实例化对象对应表中一行记录,所以 ActiveRecord 操作方式是通过实例化对象调用方法进行增删改查操作...,使用 id 查询也可以将 id 设置到对象中。

69110

GenshinPlayerQuery_qeriuwjhrf

在详细阐述 QeePHP MVC 工作流程之前,可以通过下面的流程图了解主要步骤进程。...这样在 AJAX 编程,可以直接将控制器动作返回结果回馈给客户端 JavaScript 代码。...QeePHP API 参考手册 API 参考手册提供了 QeePHP 所有对象方法参考信息用法示例。是日常使用必备参考文档。...,QeePHP 其他所有功能都依赖核心类提供服务 QeePHP 核心类提供下列服务: 设置读取修改; 类定义文件搜索载入; 对象单子模式实现,以及对象注册检索; 统一缓存接口; 基本工具方法...类提供以文件系统来缓存数据服务 QCache_Memcached QCache_Memcached 使用 memcache 扩展来缓存数据 QCache_Memory QCache_Memory 在当次请求中使用内存来缓存数据

1.4K20

JFinal极速开发框架使用笔记(三) 分析ModelActiveRecord

getBean 方法用于支持传统 Java Bean, 包括支持使用 jfnal 生成器生成了 getter、 setter 方法 Model, 页面表单传参使用与 setter 方法相一致 attrName...除了这个之外,JFinal还可以通过使用空字符串“”实现,表单域中使用正常方式提交,不用加前缀,在后台接受使用getModel方法,加一个“”,就可以正常接收数据了。   ...通过以下配置,可以在应用中使用 ActiveRecord 非常方便地操作数据库。...使用Db 与 Record 类,无需对数据库表进行映射, Record 相当于一个通用 Model。 以下为 Db +Record 模式一些常见用法:  ? ?...通过以下配置,可以在应用中使用 ActiveRecord 非常方便地操作数据库。

2K80

如何从 MongoDB 迁移到 MySQL

mongoid-enum 使用字符串 _status 来保存枚举类型字段,而 ActiveRecord 使用整数 status 表示枚举类型,两者在底层数据结构存储上有一些不同,我们会在之后迁移脚本中解决这个问题...如果准备使用 UUID 加生成器方式,其实会省去很多迁移时间,不过看起来确实不是特别的优雅,如何选择还是要权衡评估,但是如果我们选择了使用 integer 类型自增主键,就需要做很多额外工作了...除了建立数据库迁移文件并修改基类,我们还需要修改一些 include 模块 Mongoid 中独有的查询,比如使用 gte 或者 lte 日期查询使用正则进行模式匹配查询,这些查询在 ActiveRecord...就会重建其中全部关系,但是如果没有传入就会默认加载 ActiveRecord 中所有的子类,并去掉其中包含 :: 模型,也就是 ActiveRecord使用 has_and_belongs_to_many...还会创建两个 ActiveRecord::Base子类 Tag::HABTM_Posts Post::HABTM_Tags,我们可以使用下面的代码简单实验一下: ?

5.1K52

大型项目如何选择ORM:Active Record 还是 Data Mappers

ORM(Object Relational Mapping)对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统数据之间转换,简单点说就是将数据库里面的一条数据映射成一个对象,要对某条数据增删改查直接操作对应对象即可...ActiveRecord上手非常快,业务逻辑持久化逻辑在一个对象里一起解决,封装越好框架持久化逻辑对编程人员越透明,程序员甚至不用知道底层数据库使用是MySQL还是MongoDB。...对于代码封装来说,全局对象初始化传递是大问题。初始化需要依赖框架,传递需要显示传递。这就导致我们封装package不通用,只能在特定框架下传递特定对象才能使用。...使用Data Mappers框架数量相比ActiveRecord要少很多,主要有Java Hibernate,PHP Doctrine,SQLAlchemy in Python,EntityFramework...如何选择ORM 上面把ActiveRecordData Mappers都介绍清楚了,选择哪一个需要根据实际业务需求来。

2.1K50
领券