是否可以使用 acts-as-taggable-on 管理所有标签(添加、编辑和删除)
Is it possible to manage all tags (add, edit and delete) with acts-as-taggable-on
我使用 acts-as-taggable-on gem 只有一个(默认)标签列表。我想知道是否可以创建一个表单来管理具有以下功能的标签。 (浏览了所有答案,只找到了 Activeadmin 的解决方案。)
- 我设法使用 ActsAsTaggableOn::Tag.all 获得了所有标签(跨关联模型)的列表。
- 我希望能够编辑每个标签名称(文本输入字段)。
- 我希望能够删除(销毁)标签(复选框)。
- 最后,我希望能够将标签添加到列表中,因为我们只使用用户可以添加到不同模型的类别。 (也许 find_or_create_with_like_by_name)
如何构造 1-3 和 4 两种形式? acts_as_taggable 有可能吗?感谢您提前提供任何提示。
您编辑并向对象添加标签。所以如果你有一个照片模型,你会做.. /photos/1/edit 来编辑照片和标签......就像你添加它们一样。为此,您的照片模型上有一列。问题 4 我不明白...你想给他们一个标签列表供他们选择吗?如果是这样,这也很容易使用集合 select.
如果您进行搜索,您会发现大量表单示例。
自己解决了。
查看
添加标签
form_tag "/tags" do
text_field_tag :name
submit_tag "Add tag"
更新和删除标签
@tags.each do |tag|
text_field_tag "tags[#{tag.id}]name", tag.name, class: 'name'
<button class="update-tag radius small">Save</button>
<button class="delete-tag radius small">Delete</button>
$(function(){
$(".delete-tag").on("click", function(){
var row = $(this).closest("tr");
$.post("/tags/" + row.data("id"), {_method: "DELETE"}, function(){
row.remove();
})
})
$(".update-tag").on("click", function(){
var row = $(this).closest("tr");
$.post("/tags/" + row.data("id"), {_method: "PUT", name: row.find('.name').val()})
})
})
控制器
class TagsController < ApplicationController
def create
name = params[:name]
ActsAsTaggableOn::Tag.create(name: name)
redirect_to :back
end
def destroy
tag = ActsAsTaggableOn::Tag.find(params[:id])
tag.destroy
render json: {success: true}
end
def update
tag = ActsAsTaggableOn::Tag.find(params[:id])
tag.update_attributes(name: params[:name])
render json: {success: true}
end
end
我使用 acts-as-taggable-on gem 只有一个(默认)标签列表。我想知道是否可以创建一个表单来管理具有以下功能的标签。 (浏览了所有答案,只找到了 Activeadmin 的解决方案。)
- 我设法使用 ActsAsTaggableOn::Tag.all 获得了所有标签(跨关联模型)的列表。
- 我希望能够编辑每个标签名称(文本输入字段)。
- 我希望能够删除(销毁)标签(复选框)。
- 最后,我希望能够将标签添加到列表中,因为我们只使用用户可以添加到不同模型的类别。 (也许 find_or_create_with_like_by_name)
如何构造 1-3 和 4 两种形式? acts_as_taggable 有可能吗?感谢您提前提供任何提示。
您编辑并向对象添加标签。所以如果你有一个照片模型,你会做.. /photos/1/edit 来编辑照片和标签......就像你添加它们一样。为此,您的照片模型上有一列。问题 4 我不明白...你想给他们一个标签列表供他们选择吗?如果是这样,这也很容易使用集合 select.
如果您进行搜索,您会发现大量表单示例。
自己解决了。
查看
添加标签
form_tag "/tags" do
text_field_tag :name
submit_tag "Add tag"
更新和删除标签
@tags.each do |tag|
text_field_tag "tags[#{tag.id}]name", tag.name, class: 'name'
<button class="update-tag radius small">Save</button>
<button class="delete-tag radius small">Delete</button>
$(function(){
$(".delete-tag").on("click", function(){
var row = $(this).closest("tr");
$.post("/tags/" + row.data("id"), {_method: "DELETE"}, function(){
row.remove();
})
})
$(".update-tag").on("click", function(){
var row = $(this).closest("tr");
$.post("/tags/" + row.data("id"), {_method: "PUT", name: row.find('.name').val()})
})
})
控制器
class TagsController < ApplicationController
def create
name = params[:name]
ActsAsTaggableOn::Tag.create(name: name)
redirect_to :back
end
def destroy
tag = ActsAsTaggableOn::Tag.find(params[:id])
tag.destroy
render json: {success: true}
end
def update
tag = ActsAsTaggableOn::Tag.find(params[:id])
tag.update_attributes(name: params[:name])
render json: {success: true}
end
end