尝试在控制器方法上集成一些friendly_id gem 功能。
本质上,我有一个 Market 对象,它的 URL 基于自定义方法创建。由于它基于自定义方法,因此当 Market 对象更新时,friendly_id不会更新 URL。Friendly_id 确实提供了 redo_slugs rake 任务,但是当我从控制器中调用它时,它告诉我它无法构建任务。在外面运行命令就可以了。
我的控制器的代码如下所示:
require 'rake'
require 'friendly_id'
class Admin::MarketsController < ApplicationController
def update
if @market.update_attributes(params[:market])
rake_market_slugs
end
end
protected
def rake_market_slugs
Rake::Task["friendly_id:redo_slugs MODEL=Market"].invoke
end
end
我错过了什么吗?或者我可以不在我的控制器内这样做吗?
谢谢你。