在Rails中,可以使用ActsAsTaggableOn gem来给对象添加标签。下面是一个示例解决方法:
gem 'acts-as-taggable-on'
然后运行bundle install
安装gem。
acts_as_taggable_on
方法启用标签功能:class Post < ApplicationRecord
acts_as_taggable_on :tags
end
这样,Post对象就可以使用标签功能了。
tags
的数据表,可以使用Rails的生成器命令来创建:rails generate acts_as_taggable_on:migration
然后运行数据库迁移命令来创建数据表:
rails db:migrate
tag_list
方法来添加标签:class PostsController < ApplicationController
def create
@post = Post.new(post_params)
@post.tag_list = params[:tag_list] # 从表单中获取标签列表
if @post.save
redirect_to @post
else
render 'new'
end
end
private
def post_params
params.require(:post).permit(:title, :content)
end
end
在上面的示例中,假设表单中有一个名为tag_list
的字段用于输入标签。
form_for
方法来创建一个表单,并添加一个输入字段来输入标签:<%= form_for @post do |f| %>
<%= f.label :tag_list %>
<%= f.text_field :tag_list %>
<%= f.submit %>
<% end %>
这样,当提交表单时,标签将会被保存到数据库中,并与Post对象关联起来。
以上就是使用ActsAsTaggableOn gem给对象添加标签的示例解决方法。使用这个gem可以方便地实现标签功能,使得对象可以拥有和管理标签。