質問

私は自分のアプリでacts_ as_ taggable_onを使用しており、完全に機能していますが、変更を加える方法に関する情報を探しています。

現時点では、スペースを含むタグを入力すると、タグはこれらのスペースとともに保存されるため、このタグを持つすべてのレコードを表示するには、次のようになります。

http://myapp.local/tag/this%20tag%20has%20spaces

タグが this-tag-has-spaces として保存されるように、acts_as_taggable_on によって最初に保存されるときにタグをハイフンで区切るにはどうすればよいですか?

次のように値を置き換えることができますが、acts_ as_ taggable_on がタグ リストを引き継いで保存する前にこれを行うにはどうすればよいでしょうか?

tag.downcase.gsub(/[^[:alnum:]]/,'-').gsub(/-{2,}/,'-')

ありがとう

サイモン

役に立ちましたか?

解決

acts_as_taggable_on_steroids には、ここに書き込むことができtag_listアクセサを公開しているという事実を利用することにより私は私のモデルの一つに何をしましたか。私 あなたが似た何かができると仮定します:

class MyTaggableObject < ActiveRecord::Base 
  acts_as_taggable

  before_validation :clean_up_tags

  # Clean up tag formatting
  def clean_up_tags
    # Make lowercase 
    self.tag_list.map!(&:downcase) 

    # Replace any non-word ([^\w]) characters with a hyphen
    self.tag_list.map! {|tag| tag.gsub(/[^\w]+/i,'-')} 
  end
end

他のヒント

次の行を追加できます。

ActsAsTaggableOn.force_parameterize = true

イニシャライザに。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top