标签: acts-as-taggable-on

使用acts_as_taggable_on为模型创建夹具数据

我正在使用acts_as_taggable_on插件为我的Framework模型提供标记.我已经获得了Rails生成的功能测试,以及它使用的灯具,我想扩展它们以添加一些标签,以便我可以通过标签等来测试搜索.

我是否必须为taggingstag表创建灯具并在功能测试的顶部加载它们?如果是这样,我该怎么做?我没有理解这里描述的关系的语法.Framework在测试搜索行为之前,另一种方法是获取实例并将标记添加到其中吗?或者,如果我这样做,Rails的神会让我失望吗?

testing ruby-on-rails fixtures acts-as-taggable-on

5
推荐指数
3
解决办法
2136
查看次数

使用acts-as-taggable-on更改默认分隔符

act-as-taggable-on gem中的默认分隔符是逗号.我想在整个Rails 3应用程序中将其更改为空格.例如,tag_list应该像这样分配:

object.tag_list = "tagone tagtwo tagthree"
Run Code Online (Sandbox Code Playgroud)

而不是像这样:

object.tag_list = "tagone, tagtwo, tagthree"
Run Code Online (Sandbox Code Playgroud)

更改分隔符的最佳方法是什么?

ruby-on-rails acts-as-taggable-on

5
推荐指数
1
解决办法
1192
查看次数

将meta_search与acts_as_taggable_on结合使用

对于我正在开发的Rails 3网站,我遇到了一些搜索功能的小问题.我有一个Post看起来像这样的简单模型:

class Post < ActiveRecord::Base
  acts_as_taggable
end
Run Code Online (Sandbox Code Playgroud)

我正在使用acts_as_taggable_on我的帖子添加标签更容易一些.当我有一个标记为'rails'的帖子并且我执行以下操作时,一切正常:

@posts = Post.tagged_with("rails")
Run Code Online (Sandbox Code Playgroud)

事情是,我也想搜索帖子的标题.当我有一个标题为'Hello world'并标记为'rails'的帖子时,我希望能够通过搜索'hello' 'rails' 找到这篇文章.所以我想要一个LIKE标题列的声明与tagged_with方法acts_as_taggable_on提供的结合.该where范围不工作,因为它使用AND的不是OR.

我希望meta_search能解决这个问题,但这不适合我.我尝试了几件事.以下是我尝试过的两个例子:

@search = Post.search(:tagged_with_or_title_like => params[:search])
@search = Post.search(:title_like => params[:search], :tagged_with => params[:search])
Run Code Online (Sandbox Code Playgroud)

它只是不识别'tagged_with'.这是我第一次使用meta_search,所以我可能在这里做错了.;)我已经阅读了searchlogic与之结合使用的某个地方acts_as_taggable_on,但由于它不支持Rails 3,我无法使用它.

我希望这里有人可以帮我解决这个问题.任何人都知道如何结合acts_as_taggable_on使用meta_search?或者可能知道没有解决方案meta_search?此外,如果有更好的选择acts_as_taggable_on,meta_search我也很乐意听到.:)

编辑: 我没有使用tagged_with或得到它的工作meta_search.它看起来像这样:

Post.select("DISTINCT posts.*").joins(:base_tags).where("posts.title LIKE ? OR tags.name …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails acts-as-taggable-on meta-search

5
推荐指数
1
解决办法
1190
查看次数

仅显示acts_as_taggable_on标记云中最常用的标记

Acts-as-taggable效果很好,但是我想知道是否有办法将标签云限制为只有最流行的标签?是的,它看起来像按照创建标签的顺序对我的云进行排序.

但是让标签云只显示最受欢迎的标签更有意义.

我的控制器有:

  def styles_tag_cloud
     @tags = Tattoo.tag_counts_on(:styles).limit(40)
  end
Run Code Online (Sandbox Code Playgroud)

我的观点是:

<% tag_cloud(styles_tag_cloud, %w(css1 css2 css3 css4)) do |tag, css_class| %>
  <%= link_to tag.name, { :action => :tagged, :controller =>:index, :id => tag.name }, :class => css_class %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但所有这一切都是显示创建的前40个标签,然后根据其使用的次数确定每个标签的大小

ruby-on-rails acts-as-taggable-on ruby-on-rails-3

5
推荐指数
1
解决办法
2158
查看次数

向acts_as_taggable_on标记添加新列

基本上我想添加对标签投票的能力,所以我想为每个不同模型的标签设置一个优先级列.

关于如何做到这一点的任何想法?

我怀疑我需要进行新的迁移,但我不知道该怎么做.迁移会是什么?

谢谢!

ruby-on-rails acts-as-taggable-on

5
推荐指数
1
解决办法
808
查看次数

acts_as_taggable_on和select2在Active Admin中返回奇怪的结果

所以我一直在玩acts_as_taggable_on活跃的管理员,并且大多数情况下一切都按预期工作.

但是,每当我搜索标签并将现有标签添加到模型时,它似乎将其保存为ID,而不是名称.创建新标签会返回正确的名称,当我再次编辑对象时,标签仍会被名称标记.但是当我尝试添加另一个已经存在于数据库中的标记时,它会返回表单中的名称,并且似乎保存正常,但是当我再次编辑onject时,标记显示为ID,而不是而不是名字.

admin/gift.rb:

controller do
  def autocomplete_gift_tags
    @tags = ActsAsTaggableOn::Tag
      .where("name LIKE ?", "#{params[:q]}%")
      .order(:name)
    respond_to do |format|
      format.json { render json: @tags , only: [:id, :name], root: false }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

tag-autocomlete.js:

$(document).ready(function() {
  $('.tagselect').each(function() {
    var placeholder = $(this).data('placeholder');
    var url = $(this).data('url');
    var saved = $(this).data('saved');
    $(this).select2({
        tags: true,
        placeholder: placeholder,
        minimumInputLength: 1,
        initSelection: function(element, callback) {
            saved && callback(saved);
        },
        ajax: {
            url: url,
            dataType: 'json',
            data: …
Run Code Online (Sandbox Code Playgroud)

autocomplete ruby-on-rails acts-as-taggable-on activeadmin select2-rails

5
推荐指数
1
解决办法
1213
查看次数

如何让rails_admin gem识别带有acts_as_taggable_on tag_lists的模型?

我正在使用rails_admin和acts_as_taggable_on gems设置rails应用程序.

在项目早期尝试确保可以完成此操作时,我在rails_admin github页面上发现了这个问题,导致这个gem仍然在rails_admin github wiki上的插件列表中.所以似乎可以做到.

我首先按照README中的rails_admin,acts_as_taggable_on和rails_admin_tag_list中的设置说明进行操作.我在应用程序上有一些模型,在向它们添加任何标记功能之前,它们会在rails_admin上显示并正常工作.

以下是我尝试将标记添加到的模型示例:

class Location < ActiveRecord::Base
  acts_as_taggable
  acts_as_taggable_on :regions

  private

  def location_params
    params.require(:location).permit(:lat, :long, :tag_list => [], :region_list => [])
  end
end
Run Code Online (Sandbox Code Playgroud)

在这种格式中,我得到一个闪存通知:访问rails管理页面时"无法找到模型'位置'.位置模型也不会显示在模型列表中.

我还没有构建添加数据的页面,但我确实通过rails控制台向我的数据库添加了一个位置,并使用acts_as_taggable_on自述文件中的示例将标签添加到该位置的列表中:

a = Location.new
a.region_list.add("awesome")
Run Code Online (Sandbox Code Playgroud)

执行此操作并再次查看rails_admin页面后,我仍然看到"模型'位置'无法找到"闪存通知.但我也在模型列表中看到位置.

单击位置给出了以下错误:

NoMethodError at /location

undefined method `[]' for #<RailsAdmin::Adapters::ActiveRecord::Property:0x00000101fabd90>
Run Code Online (Sandbox Code Playgroud)

更好的错误显示了

if tag_types.include?(properties[:name]) 
Run Code Online (Sandbox Code Playgroud)

下面的行是故障线:

RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|

  model = parent.abstract_model.model

  if defined?(::ActsAsTaggableOn) && model.taggable?
    tag_types = model.tag_types

    if tag_types.include?(properties[:name])
      name = "#{properties[:name].to_s.singularize}_list".to_sym
      fields << RailsAdmin::Config::Fields::Types::TagList.new(parent, name, properties)

    end
  end
Run Code Online (Sandbox Code Playgroud)

我现在还很新,但似乎目前还没有很多关于这两个宝石之间相互作用的文章.我很感激您可以提供的任何洞察力,以使rails …

ruby-on-rails acts-as-taggable-on rails-admin

5
推荐指数
1
解决办法
804
查看次数

act-as-taggable-on使用范围(tagger?)和context

我的应用程序使用act-as-taggable-on来标记Content.内容belongs_toa Company.

现在,所有创建的标签都应属于使用过的公司,而其他公司则无法看到.

如何使用act-as-taggable-on解决这个问题?作为我目前使用的上下文:content.在我的情况下,公司是Tagger(所有者)?

谢谢你的澄清.

ruby-on-rails acts-as-taggable-on

5
推荐指数
1
解决办法
67
查看次数

带有Acts_As_Taggable_On的Rails 3中未初始化的Tag常量

此控制器操作在Rails 2.3.x中完美运行:

def show
  @title = Tag.find(params[:id]).name
  @tag = Tag.find(params[:id])
  @messages = Post.paginate(Post.find_tagged_with(@tag), 
              :page => params[:page], :per_page => 10, :order => "updated_at DESC")
  @related_tags = @related_entries.collect{|x|x.tags}.flatten.uniq
  @related_tags.delete(@tag)
end
Run Code Online (Sandbox Code Playgroud)

但是在将我的应用程序迁移到Rails 3时,我在Tags#show中遇到了这个错误:

uninitialized constant TagsController::Tag
Run Code Online (Sandbox Code Playgroud)

它不喜欢Tag常数.其他人遇到过这个问题吗?

我正在使用Rails 3.0.0RC和Ruby 1.9.2.

ruby-on-rails constants acts-as-taggable-on ruby-on-rails-3

4
推荐指数
2
解决办法
2503
查看次数

带有act-as-taggable-on的简单表单自定义输入

我在Simple_form和act-as-taggable-on方面遇到了一些问题.

我有一个对象"象形图",有一些标签,如" "和" 紧急 "

我在表单中使用此代码

= f.input :tag_list
Run Code Online (Sandbox Code Playgroud)

当我编辑我的象形图时,系统删除我的逗号并显示我的text_field就像"门紧急",如果我保存我的两个标签被删除并替换为一个标签"门紧急"

我正在网上寻找解决方案,许多人建议在simple_form中创建自定义输入,但我不知道从哪里开始.

我在app/inputs中创建了一个文件tag_input.rb,然后添加了这段代码

class TagInput < SimpleForm::Inputs::Base
 def input(wrapper_options)

 end
end
Run Code Online (Sandbox Code Playgroud)

但现在我迷路了.

对不起我的英语,这不是我的母语

ruby ruby-on-rails acts-as-taggable-on simple-form ruby-on-rails-4

4
推荐指数
2
解决办法
1605
查看次数