在Rails 5中,问题在数据库中按名称搜索friendly_id不允许删除或更新的原因是因为friendly_id是一个用于生成友好URL的Gem,它使用了数据库中的一个字段来存储生成的友好URL。当你尝试删除或更新一个使用friendly_id生成的URL时,会出现问题,因为这可能会导致其他相关的URL无法访问或产生冲突。
为了解决这个问题,你可以使用friendly_id提供的一些方法来处理删除或更新操作。以下是一些解决方案:
shoulda-matchers
gem来测试删除操作是否正确。具体步骤如下:gem 'shoulda-matchers'
并运行bundle install
安装gem。shoulda
宏来测试删除操作。例如:shoulda
宏来测试删除操作。例如:should_generate_new_friendly_id?
方法来检查是否需要生成新的friendly_id。具体步骤如下:should_generate_new_friendly_id?
方法。例如:should_generate_new_friendly_id?
方法。例如:总结一下,问题在数据库中按名称搜索friendly_id不允许删除或更新是因为这可能导致其他相关URL的冲突或无法访问。为了解决这个问题,你可以使用shoulda-matchers gem来测试删除操作,并重写should_generate_new_friendly_id?方法来处理更新操作。这样可以确保friendly_id的正确使用。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云