sim*_*ung 1 ruby-on-rails acts-as-taggable
我在我的应用程序中使用acts_ as_ taggable_on并使其工作正常,但我正在寻找有关如何进行一次修改的信息.
目前,如果我输入包含空格的标签,标签将与这些空格一起保存,因此要查看具有此标签的所有记录,我有类似的内容:
http://myapp.local/tag/this%20tag%20has%20spaces
当act_ as_ taggable_on首次保存标签时,如何将标签连字符,以便标签存储为this-tag-has-spaces?
我可以如下替换值,但是如何在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |