Rails 5 ask_as_taggable 与 select2
Rails 5 ask_as_taggable with select2
我看不到 select2 在 rails 5 形式中的效果,无论它是 text_field 还是 select。有谁知道为什么 tag_list 没有被填充。我可以看到 tag_list 有值,但正如您在下面的快照中看到的,它显示 "No results found"。 select2 是否可以与 Rails 5 一起使用,因为我已经尝试了多种选择?
form: Select all 将所有值显示到框中
<%= f.label :tags, "Tags (separated by commas)" %>
<%= f.text_field :tag_list, value: f.object.tag_list.each { |e| e} %>
<input type="checkbox" id="checkbox" >Select All
我使文本字段变得简单而不是 select2,并且能够通过将 :tag_list
添加到强参数来在数据库中添加标签。
application.js -
注意:select2 不起作用 o 我使用了 select2-full,我在 Google.
的某处看到了它
//= require underscore
//= require select2-full
select2
的 JS 代码
$(function() {
$('input#post_tag_list').select2({tags:[], placeholder: "Choose a Tag", allowClear: true})
});
现在,我检查了正常的 HTML 和 JS,它甚至可以与 select2(或 select2-full)
一起使用
<select multiple id="e1" style="width:300px">
<option value="A">Apple</option>
<option value="B">Banana</option>
<option value="G">Grapes</option>
</select>
<input type="checkbox" id="checkbox" >Select All
对应的JS代码为:
$("#checkbox").click(function(){
if($("#checkbox").is(':checked') ){
$("#post_topic_list > option").prop("selected","selected");
$("#post_topic_list").trigger("change");
}else{
$("#post_topic_list > option").removeAttr("selected");
$("#post_topic_list").trigger("change");
}
});
有人可以指出,如果正常的 HTML select-输入与 select2 一起工作,为什么它在 rails5 中没有相同的功能?我尝试了 bootstrap_form_for 和 form_for。我什至读到了有关 turbolinks 的问题...如何解决 turbolinks 未加载 select2 的问题?
我通过将文本字段更改为 select:
解决了这个问题
<%= f.select(:tag_list, Tag.all.order(:name).collect { |a| [a.name, a.id]}, {}, id: "tag_list", label:'Tags', :multiple => true)%>
JS代码为:
$(function() {
$("#tag_list" ).select2();
});
是的,请在 app/models 中添加一个名为 Tag.rb 的文件。 gem 仅安装表但不创建模型。
class Tag < ApplicationRecord
validates_presence_of :name
end
我看不到 select2 在 rails 5 形式中的效果,无论它是 text_field 还是 select。有谁知道为什么 tag_list 没有被填充。我可以看到 tag_list 有值,但正如您在下面的快照中看到的,它显示 "No results found"。 select2 是否可以与 Rails 5 一起使用,因为我已经尝试了多种选择?
form: Select all 将所有值显示到框中
<%= f.label :tags, "Tags (separated by commas)" %>
<%= f.text_field :tag_list, value: f.object.tag_list.each { |e| e} %>
<input type="checkbox" id="checkbox" >Select All
我使文本字段变得简单而不是 select2,并且能够通过将 :tag_list
添加到强参数来在数据库中添加标签。
application.js -
注意:select2 不起作用 o 我使用了 select2-full,我在 Google.
的某处看到了它//= require underscore
//= require select2-full
select2
的 JS 代码$(function() {
$('input#post_tag_list').select2({tags:[], placeholder: "Choose a Tag", allowClear: true})
});
现在,我检查了正常的 HTML 和 JS,它甚至可以与 select2(或 select2-full)
一起使用<select multiple id="e1" style="width:300px">
<option value="A">Apple</option>
<option value="B">Banana</option>
<option value="G">Grapes</option>
</select>
<input type="checkbox" id="checkbox" >Select All
对应的JS代码为:
$("#checkbox").click(function(){
if($("#checkbox").is(':checked') ){
$("#post_topic_list > option").prop("selected","selected");
$("#post_topic_list").trigger("change");
}else{
$("#post_topic_list > option").removeAttr("selected");
$("#post_topic_list").trigger("change");
}
});
有人可以指出,如果正常的 HTML select-输入与 select2 一起工作,为什么它在 rails5 中没有相同的功能?我尝试了 bootstrap_form_for 和 form_for。我什至读到了有关 turbolinks 的问题...如何解决 turbolinks 未加载 select2 的问题?
我通过将文本字段更改为 select:
解决了这个问题<%= f.select(:tag_list, Tag.all.order(:name).collect { |a| [a.name, a.id]}, {}, id: "tag_list", label:'Tags', :multiple => true)%>
JS代码为:
$(function() {
$("#tag_list" ).select2();
});
是的,请在 app/models 中添加一个名为 Tag.rb 的文件。 gem 仅安装表但不创建模型。
class Tag < ApplicationRecord
validates_presence_of :name
end