我正在使用Ruby在轨道上进行项目,我想使用friendly_id gem。当我在项目中安装friendly_id gem时,请根据说明添加以下代码。
控制器:
def show
@group = Group.friendly.find(params[:id])
end
型号:
extend FriendlyId
friendly_id :title, use: [:slugged]
我正在使用Rails版本3.2.11,并且friendly_id gem是4.0.0
在控制器中出现错误。我不明白为什么会这样。
错误:
undefined method `slug' for #<Group:0x000000092ac228>
更新:
先前的问题解决了重启服务器和迁移数据库的问题。
但它会产生新的问题Couldn't find group with id=new-demo-group
答案 0 :(得分:1)
似乎您需要更新已经创建的记录,对于这种情况,将是(组模型),如文档所述:
如果您要将FriendlyId添加到现有应用中,并且需要生成 现有用户的子弹,可以通过控制台,运行器或添加一个 耙任务:
Group.find_each(&:save)
Rails控制台
在应用程序根目录上打开终端并运行(-e是环境)
rails console -e production
您应该获得与此类似的输出(我添加了要运行的命令):
Running via Spring preloader in process 5389
Loading production environment (Rails 5.1.5)
2.5.1 :001 > Group.find_each(&:save)
轨道跑手
在应用程序根目录上打开终端并运行(-e是环境)
rails runner -e production "Group.find_each(&:save)"