コントローラー メソッドにいくつかの Friendly_id gem 機能を統合しようとしています。
基本的に、カスタム メソッドに基づいて作成された URL を持つ Market オブジェクトがあります。カスタム メソッドに基づいているため、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
何か不足していますか?または、コントローラー内でこれを行うことはできませんか?
ありがとうございました。