未定义的方法“友好”从控制器获取错误

时间:2019-01-12 05:18:29

标签: ruby-on-rails ruby friendly-id

我正在使用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

1 个答案:

答案 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)"