【问题标题】:adding a count feature from a tags drop down using json, jquery and rails使用 json、jquery 和 rails 从标签下拉列表中添加计数功能
【发布时间】:2012-05-15 22:11:19
【问题描述】:

我使用 jquery tokeninput 跟随 railscasts

http://railscasts.com/episodes/258-token-fields-revised

在创建自动完成标记令牌并已成功完成。但是,我一直在尝试添加一个计数属性,非常类似于堆栈溢出标签计数器。

我的标签中有#index

    @tags = Tag.order(:name)
    #@tags = Tag.order(:name).where("name like ?", "%#{params[:term]}%")
    respond_to do |format|
        format.html
        format.json { render json: @tags.tokens(params[:q]) }
    end

当我渲染时,它会调用我的令牌方法...

  def self.tokens(query)
    tags = where("name like ?", "%#{query}%")
    if tags.empty?
        [{id: "<<<#{query}>>>", name: "New: \"#{query}\""}]
    else
        puts tags.inspect
        tags
    end
  end

如果我输入“steelswarm”这个词并检查返回的标签,我的控制台上会显示...

[#<Tag id: 4, name: "steelswarm", created_at: "2012-05-11 01:49:55", updated_at: "2012-05-11 01:49:55", count: 2>]

当用户开始输入“steelswarm”这个词时,我希望下拉菜单显示“steelswarm x 2”,因为它的计数为 2。

我试过了

tags.map{ |tag| {:label => "#{tag.name} x #{tag.count}", :value => tag.name} }

在我的 else 语句中,但下拉菜单停止渲染。它甚至找不到第一个字母了。我究竟做错了什么?

:label 和 :value 属性不属于 jquery 整体吗?

我也一直在研究来自

的选项

http://loopj.com/jquery-tokeninput/

但我似乎找不到可行的方法,或者至少我能想到... 抱歉,我对 json 和 jquery 不是很熟悉,所以非常感谢您的帮助 = )

谢谢。

【问题讨论】:

    标签: jquery ruby-on-rails json jquery-tokeninput


    【解决方案1】:

    我修好了。似乎令牌只有一个 :id 和 :name 属性。所以我做到了..

    tags.map{ |tag| {  id: "#{tag.id}", name: "#{tag.name} # #{tag.count}" } }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 2011-04-19
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多