Ruby on rails Rails:友好的\u id slug关系

Ruby on rails Rails:友好的\u id slug关系,ruby-on-rails,url,relationship,friendly-id,Ruby On Rails,Url,Relationship,Friendly Id,我想为我的模型创建一个slug,它依赖于相关模型的一列。可能吗 以下是我的想法: # Example::User class extend FriendlyId friendly_id user.username, use: :slugged belongs_to :user, class_name: "::User" 我得到以下错误: NoMethodError:nil:NilClass的未定义方法“username” 编辑:如何创建记录 我有一个用户和示例::用户模型。 运行时: User

我想为我的模型创建一个slug,它依赖于相关模型的一列。可能吗

以下是我的想法:

# Example::User class
extend FriendlyId
friendly_id user.username, use: :slugged
belongs_to :user, class_name: "::User"
我得到以下错误:

NoMethodError:nil:NilClass的未定义方法“username”

编辑:如何创建记录

我有一个用户和示例::用户模型。 运行时:

User.create(email: "demo@example.com", name: "demo", password: "12345678").encrypted_password
示例::自动创建用户记录:

# User class
before_action :create_example_user

has_one :example_user, class_name: "Example::User"

def create_example_user
    Example::User.create(user_id: self.id)
end

试试这样的

extend FriendlyID
friendly_id user_username, use: :slugged
belongs_to :user

def user_username
  user.username
end
编辑:

由于示例用户试图在保存用户之前引用该用户,因此会导致错误

改变

def create_example_user
    Example::User.create(user_id: self.id)
end


可以解决此问题

您可以发布创建用户和此关联的相关代码吗?在您的before\u操作回调中,尝试将Example::user.createuser\u id:self.id更改为self.Example\u user.createHmm。。我得到NoMethodError:undefined方法create'for nil:NilClass`。不知道为什么关系不起作用…我的错,示例用户还不存在。请尝试self.build\u example\u user,它给出了:SystemStackError:堆栈级别太深
def create_example_user
    self.build_example_user
end