首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用保留字时出现友好id和设计错误

使用保留字时出现友好id和设计错误
EN

Stack Overflow用户
提问于 2011-05-08 02:39:56
回答 5查看 2.2K关注 0票数 5

我使用友好Id允许用户使用他们的登录名访问配置文件,但当我尝试使用友好id保留的登录名进行注册时,我得到了一个错误。devise似乎不能正确地呈现错误消息。当我使用authlogic时,这个错误工作得很好。

Friendly_id配置:

代码语言:javascript
复制
:reserved_words => ["index", "new", "users", "admin", "login", "logout", "books",
                    "administrator", "signup"],

错误:

代码语言:javascript
复制
FriendlyId::ReservedError in Devise::RegistrationsController#create
FriendlyId::ReservedError

我使用的是:

代码语言:javascript
复制
gem 'devise', '1.3.4'
gem 'friendly_id', '3.2.1.1'
EN

回答 5

Stack Overflow用户

发布于 2011-11-12 04:41:16

以下代码适用于Rails 3.1.1上的friendly_id 4.0.0.beta14

代码语言:javascript
复制
extend FriendlyId
friendly_id :name

after_validation :validate_reserved

def validate_reserved
  if @errors[:friendly_id].present?
    @errors[:name] = "is reserved. Please choose something else"
    @errors.messages.delete(:friendly_id)
  end
end

我的friendly_id.rb初始化器如下所示:

代码语言:javascript
复制
FriendlyId.defaults do |config|
  config.use :slugged, :reserved
  config.reserved_words = %w(new edit index show data)
end
票数 2
EN

Stack Overflow用户

发布于 2019-07-16 23:20:08

或者只需编辑config/initilaizers/friendly_id.rb文件并将保留字添加到

代码语言:javascript
复制
config.reserved_words = %w( [...] )

块,作为documentation attests

票数 1
EN

Stack Overflow用户

发布于 2011-05-27 16:32:41

在通过这个discussion之后,我在user.rb中添加了以下内容,它似乎工作得很好:

代码语言:javascript
复制
after_validation :validate_reserved

def validate_reserved
        slug_text
        rescue FriendlyId::BlankError
        rescue FriendlyId::ReservedError
        @errors[friendly_id_config.method] = "is reserved. Please choose something else"
        return false
end

我还添加了一个条件,它将拯救FriendlyId::BlankError,因为我已经在我的常规验证中检查了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5923199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档