gpt4 book ai didi

ruby-on-rails-3 - 允许 acts_as_taggable_on 使用主题标签

转载 作者:行者123 更新时间:2023-12-01 16:22:37 25 4
gpt4 key购买 nike

我正在使用 acts_as_taggable_on gem:https://github.com/mbleigh/acts-as-taggable-on

此 gem 接受用户以逗号分隔的标签输入,即 Clever、Cool、Joyful

我有一个 partial: shared/_micropost_form 要求标签:

<%= form_for(@micropost) do |f| %>
<%= f.text_field :tag_list, placeholder: "Tags", id: "genre_tag_field" %>
<% end %>

然而,有时用户会输入带有主题标签的标签,即#Happy #Drunk 或#Stupid、#Drunk

我怎样才能做到在创建微博之前,它会检查输入的:tag_list 是否每个单词都以# 开头,如果是,则删除# 并添加一个,(除非已经有一个,)到每个单词的结尾。所以当用户输入#Happy #Drunk 时,标签会自动保存为 Happy, Drunk

微博模型:

acts_as_ordered_taggable

微博 Controller :

def create
@user = User.find(params[:user_id])
@micropost = @user.microposts.build(params[:micropost])
if @micropost.save
flash[:success] = "Posted!"
redirect_to :back
else
flash[:notice] = "Error!"
redirect_to :back
end
end

谢谢,感谢任何帮助。如果不扔 gem ,这可能吗?

最佳答案

虽然没有在实践中验证,但这里有一个解决方案。

根据 README,您可以在初始化程序中设置以下内容以删除标签名称中的特殊字符:

ActsAsTaggableOn.force_parameterize = true

acts_as_taggable_on 似乎没有安装命令和默认初始化程序。您可以将上述设置放在 /initializers/ 中的任何文件中,并首选专用于该 gem 的新文件。

通过设置,您输入的所有标签名称将在保存后处理

my_string.parameterize

测试

"radical)(cc".parameterize
#=> "radical-cc"

"#Happy".parameterize
#=> "happy"

关于ruby-on-rails-3 - 允许 acts_as_taggable_on 使用主题标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com