首页
学习
活动
专区
工具
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处理消息时topic和channel的理解

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 的设置。

81830

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

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

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

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

    3.8K50

    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.3K30

    通信|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的基本内容到这篇基本就结束了,希望这五篇文章可以在通信的道路和生活上有所帮助

    83110

    详解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

    location的hash部分和使用window.onhashchange实现ajax请求内容时使用浏览器后退和前进功能

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

    937100

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

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

    31200

    Windows下C++使用thread时无法识别thread和mutex相关库的解决

    CLion的C++编译器是正常的,以前也跑过好几个项目,使用其他STL库函数也正常,唯独使用thread时报无法识别的错,所有thread都划上了红线。如下图所示: ?...(fix available) 问题解决过程 因为thread和mutex是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.6K20

    使用dbms_stat采集统计信息时estimate_percent和cascade的默认值

    --此处理解有误,按照官方文档的介绍,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.8K80

    优化爬虫程序使用代理IP时出现的TIME_WAIT和CLOSE_WAIT状态

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

    36730

    深入理解 TypeScript 中的 Record 类型及其应用

    在 TypeScript 中,Record 是一个内置的泛型工具类型,它的用途是创建一个具有特定键和值类型的对象映射。这段代码定义了 Record 类型的实现,并通过简单的语言特性表达了强大的功能。...结果是一个对象类型,其键是 K 中的元素,值是类型 T。代码的逻辑推导Record 的输入是两个泛型参数:K 和 T。K 限制为所有可以作为对象键的类型。...user 必须符合这个类型,因此需要定义 id 和 name 属性,且它们的值都必须是字符串。更复杂的使用场景我们可以通过更多示例展示 Record 的灵活性。...进一步扩展与其他工具类型结合:type ReadonlyRecord = Readonly>;const point: ReadonlyRecord...其实现逻辑依赖于映射类型和泛型,是 TypeScript 类型系统的重要基础之一。通过结合其他类型工具和高级特性,Record 能进一步扩展其功能,适应各种复杂的场景。

    12010

    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.3K20

    GenshinPlayerQuery_qeriuwjhrf

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

    1.4K20

    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 设置到对象中。

    72010

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

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

    2.1K80

    大型项目如何选择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 上面把ActiveRecord和Data Mappers都介绍清楚了,选择哪一个需要根据实际业务需求来。

    2.2K50
    领券