gpt4 book ai didi

jQuery 标签-使用 Rails4/Simple_form 输入

转载 作者:行者123 更新时间:2023-11-30 23:49:49 24 4
gpt4 key购买 nike

我正在使用 Rails 4 Simple_form acts_as_taggable

I'm Trying to implement the jQuery Tags Input for my Tags (atcs_as_taggable).

Tags_input 的 HTML 为:

   <input name="tagsinput" class="tagsinput" value="School,Teacher,Colleague" />

翻译成Simple_form:

   <%= f.input :tag_list, input_html: { class: "tagsinput "} %>

我在更改之前输入的标签已正确显示在编辑/表单中,但新标签未保存。

我的 Tags_input 的 JS 很简单:

   $(".tagsinput").tagsInput({
width: '300px'
});

我错过了什么?

最佳答案

对我来说,这个插件不是你可以使用的最好的插件。

我会选择

  1. 选择 http://harvesthq.github.io/chosen/
  2. jQuery Tokeninput http://loopj.com/jquery-tokeninput/ .

以前喜欢第二个,但 Chosen 是一个很棒的插件,现在是我最喜欢的。

至于在 Rails 中实现它们:

选择

Gemfile

group :assets do
gem 'chosen-rails'
end

app/assets/javascripts/application.js

//= require chosen-jquery

app/assets/stylesheets/application.css

*= require chosen

app/assets/javascripts/questions.js.coffee

jQuery ->
$('#question_tags_ids').chosen()

questions/_form.html.erb

<div class="field">
<%= f.label :tag_ids, "Tags" %><br />
<%= f.collection_select :tag_ids, Tag.order(:name), :id, :name, {}, {multiple: true} %>
</div>
<小时/>

jQuery Tokeninput

app/assets/javascripts/application.js

//= require jquery.tokeninput

app/assets/stylesheets/application.css

*= require token-input-facebook

app/assets/javascripts/questions.js.coffee

jQuery ->
$('#question_tag_tokens').tokenInput '/tags.json'
theme: 'facebook'
prePopulate: $('#question_tag_tokens').data('load')

questions/_form.html.erb

<div class="field">
<%= f.label :tag_tokens, "Tags" %><br />
<%= f.text_field :tag_tokens, data: {load: @question.tags} %>
</div>

模型/question.rb

attr_accessible :name, :tag_tokens
attr_reader :tag_tokens

def tag_tokens=(tokens)
self.tag_ids = Tag.ids_from_tokens(tokens)
end

tags_controller.rb

def index
@tags = Tag.order(:name)
respond_to do |format|
format.html
format.json { render json: @tags.tokens(params[:q]) }
end
end

models/tag.rb

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

def self.ids_from_tokens(tokens)
tokens.gsub!(/<<<(.+?)>>>/) { create!(name: $1).id }
tokens.split(',')
end

关于jQuery 标签-使用 Rails4/Simple_form 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19006080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com