我有一个与Person和Company模型多态关联的模型User。
我正在使用friendly_id来显示人员和公司的永久链接。
Person有first_name属性,我在模型中添加了以下内容。
extend FriendlyId
friendly_id :first_name
现在,当我更新现有条目时,slug会完美地创建。但是当我尝试创建一个抛出路由错误的新用法时会出现问题。
其次,每个人都有一个用户,用户有一个用户名,所以当我尝试以下命令时,更新和新记录都会抛出未知方法用户名,因为nil类错误。
extend FriendlyId
friendly_id :person_permalink, use: [:slugged, :history]
def person_permalink
"#{self.user.username} #{self.name}"
end
答案 0 :(得分:2)
我认为这可能与friendly_id上的before_save
有关。
在创建friendly_id且self.user
为零时,关联的记录和ID很可能不同步。
尝试在friendly_id中使用主键ID表列值的人也存在类似的问题。