Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否可以使用acts as taggable on管理所有标记(添加、编辑和删除)_Ruby On Rails_Acts As Taggable On - Fatal编程技术网

Ruby on rails 是否可以使用acts as taggable on管理所有标记(添加、编辑和删除)

Ruby on rails 是否可以使用acts as taggable on管理所有标记(添加、编辑和删除),ruby-on-rails,acts-as-taggable-on,Ruby On Rails,Acts As Taggable On,我在gem上使用acts作为标记,只有一个(默认)标记列表。我想知道是否可以创建一个表单来管理具有以下功能的标记。(浏览了所有答案,只找到了Activeadmin的解决方案。) 我使用actsastaggaleon::Tag.all获得了所有标记(跨关联模型)的列表 我希望能够编辑每个标记名(文本输入字段) 我希望能够删除(销毁)标记(复选框) 最后,我想能够添加一个标签到列表中,因为我们只使用用户可以添加到不同模型的类别。(可能有) 我将如何构造这两种形式1-3和4?作为可标记的行为,这可能吗

我在gem上使用acts作为标记,只有一个(默认)标记列表。我想知道是否可以创建一个表单来管理具有以下功能的标记。(浏览了所有答案,只找到了Activeadmin的解决方案。)

  • 我使用actsastaggaleon::Tag.all获得了所有标记(跨关联模型)的列表
  • 我希望能够编辑每个标记名(文本输入字段)
  • 我希望能够删除(销毁)标记(复选框)
  • 最后,我想能够添加一个标签到列表中,因为我们只使用用户可以添加到不同模型的类别。(可能有)

  • 我将如何构造这两种形式1-3和4?作为可标记的行为,这可能吗?谢谢你事先的提示

    您可以编辑标记并将其添加到对象中。因此,如果你有一个照片模型,你会做/照片/1/编辑以编辑照片和标签。。。和你添加它们的方式一样。为此,您的照片模型上有一列。问题4我不明白。。。您想给他们一个标签列表,让他们从中选择?如果是这样,也可以使用集合选择

    如果你搜索,你会发现大量的表单示例。

    我自己解决了它

    看法 添加标签 更新和删除标记
    @tags.each do| tag|
    text_field_tag“tags[#{tag.id}]name”,tag.name,class:'name'
    拯救
    删除
    $(函数(){
    $(“.delete tag”)。在(“单击”,函数(){
    var行=$(此).tr;
    $.post(“/tags/”+row.data(“id”),{u方法:“DELETE”},函数(){
    row.remove();
    })
    })
    $(“.update tag”)。在(“单击”,函数(){
    var行=$(此).tr;
    $.post(“/tags/”+row.data(“id”),{u方法:“PUT”,名称:row.find('.name').val()})
    })
    })
    
    控制器
    class标记控制器
    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