act_as_taggable_on にハイフネーションタグが追加されました
-
20-09-2019 - |
質問
私は自分のアプリで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
イニシャライザに。
所属していません StackOverflow