Ruby on rails Rails:友好的\u id slug关系
我想为我的模型创建一个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
# 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