2016-05-28 5 views
2

私はRailsアプリケーションをビルドしていますが、2番目のロケールが定義された記事のためにslugを生成すると止まってしまいます。
の場合、記事に既にタイトルが付いているかどうかがチェックされています。その場合、最後に整数(id)を追加しますが、2番目のロケール(英語)では記事(私に二重スラッグを与える)存在する。ここでRails :: FriendlyId、Globalize、slug_candidatesでスラッグを生成

は私のモデルです:

class Post < ActiveRecord::Base 
    translates :title, :slug, :content, fallbacks_for_empty_translations: true 
    active_admin_translates :title, :slug, :content, fallbacks_for_empty_translations: true 

    extend FriendlyId 
    friendly_id :slug_candidates, use: [:slugged, :globalize, :finders] 

    private 

    def slug_candidates 
    [:title, [:title, :deduced_id]] # works for main locale but not others 
    end 

    def deduced_id 
    self.class.where(title: title).count + 1 
    end 
end 

にはどうすればIDは記事がすでに同じタイトルで存在する場合、二次ロケールのために強打するために追加で入手できますか?

ありがとうございました!

マイプロジェクト

  • のRails 4.2.6
  • ActiveAdmin 1.0.0.pre2
  • は5.0.1
  • のグローバル化は、1.0をFriendlyId、グローバル化5.1.0
  • をFriendlyId。 0.アルファ2

答えて

1

私はついに次のようにslug_candidatesメソッドを更新してください:

def slug_candidates 
    [[:title, :deduced_id]] 
end 
関連する問題