select2-rails + act_as_taggable_on rails 4期
select2-rails + act_as_taggable_on rails 4 issue
我在我的应用程序中安装了 select2-rails 和 act_as_taggable_on gem。我设置了 act_as_taggable_on 并且它有效(我从控制台测试过)。但是,当我尝试创建视图以便用户可以添加新标签时,它不起作用。
我想做这样的标签支持:https://select2.github.io/examples.html#tokenizer。
这是我的设置:
apps/assets/application.js
$(document).ready(function(){
$(".multiple-input").select2({
theme: "bootstrap";
tags: true;
tokenSeparators: [',']
})
});
apps/views/profiles/new.html.erb
<%= form_for @profile, url: user_profile_path do |f| %>
<%= f.text_field :name, placeholder: "Full Name" %>
<%= f.text_field :skill_list, placeholder: "Skills", class: 'multiple-input' %>
<% end %>
当我在浏览器上打开 profiles/new 时,skill_list 文本字段显示为原样,而不是使用 select2 标记系统。
我的代码肯定有问题或缺失。请帮忙。
更新 1
我将代码更改为:
<%= f.select :skill_list, placeholder: "Skills", class: 'multiple-input' %>
运气不好。
所以,我安装了简单的表单 gem 因为基于这篇文章 (http://onewebstory.com/notes/user-friendly-tagging-on-rails) select2 rails 不能使用 select 标签.
这是我当前的代码:
apps/views/profiles/new.html.erb
<%= simple_form_for(@profile, url: user_profile_path) do |f| %>
<div class="form-inputs" %>
<%= f.input :name, placeholder: 'Full Name' %>
<%= f.input :skill_list, input_html: { class: 'multiple-input' } %>
</div>
<% end %>
apps/assets/application.js
$(document).ready(function() {
$('input.multiple-input').each(function() {
$(this).select2({
theme: 'bootstrap',
tags: $(this).data('tags'),
tokenSeparators: [',']
});
});
});
select2 正在运行,我可以使用 select2 搜索和下拉菜单。但是我希望它标记输入,每次用户输入逗号 (,) 临时存储就像在这里:(https://select2.github.io/examples.html#tokenizer)
现在可以了。我用这段代码做到了:
这是我的代码:
app/views/profiles/new.html.erb
<%= f.input :skill_list, input_html: { class: 'multiple-input', multiple: "multiple" }, collection: @profile.skill_list %>
app/assets/application.js
$(document).ready(function() {
$('.multiple-input').each(function() {
$(this).select2({
tags: true,
tokenSeparators: [','],
theme: 'bootstrap',
placeholder: 'Separated by comma'
});
});
});
也在 apps/controllers/profiles_controller.rb 我添加了强参数
def profile_params
params.require(:profile).permit(:name, skill_list: [])
end
我在我的应用程序中安装了 select2-rails 和 act_as_taggable_on gem。我设置了 act_as_taggable_on 并且它有效(我从控制台测试过)。但是,当我尝试创建视图以便用户可以添加新标签时,它不起作用。
我想做这样的标签支持:https://select2.github.io/examples.html#tokenizer。
这是我的设置:
apps/assets/application.js
$(document).ready(function(){
$(".multiple-input").select2({
theme: "bootstrap";
tags: true;
tokenSeparators: [',']
})
});
apps/views/profiles/new.html.erb
<%= form_for @profile, url: user_profile_path do |f| %>
<%= f.text_field :name, placeholder: "Full Name" %>
<%= f.text_field :skill_list, placeholder: "Skills", class: 'multiple-input' %>
<% end %>
当我在浏览器上打开 profiles/new 时,skill_list 文本字段显示为原样,而不是使用 select2 标记系统。
我的代码肯定有问题或缺失。请帮忙。
更新 1
我将代码更改为:
<%= f.select :skill_list, placeholder: "Skills", class: 'multiple-input' %>
运气不好。
所以,我安装了简单的表单 gem 因为基于这篇文章 (http://onewebstory.com/notes/user-friendly-tagging-on-rails) select2 rails 不能使用 select 标签.
这是我当前的代码:
apps/views/profiles/new.html.erb
<%= simple_form_for(@profile, url: user_profile_path) do |f| %>
<div class="form-inputs" %>
<%= f.input :name, placeholder: 'Full Name' %>
<%= f.input :skill_list, input_html: { class: 'multiple-input' } %>
</div>
<% end %>
apps/assets/application.js
$(document).ready(function() {
$('input.multiple-input').each(function() {
$(this).select2({
theme: 'bootstrap',
tags: $(this).data('tags'),
tokenSeparators: [',']
});
});
});
select2 正在运行,我可以使用 select2 搜索和下拉菜单。但是我希望它标记输入,每次用户输入逗号 (,) 临时存储就像在这里:(https://select2.github.io/examples.html#tokenizer)
现在可以了。我用这段代码做到了:
这是我的代码:
app/views/profiles/new.html.erb
<%= f.input :skill_list, input_html: { class: 'multiple-input', multiple: "multiple" }, collection: @profile.skill_list %>
app/assets/application.js
$(document).ready(function() {
$('.multiple-input').each(function() {
$(this).select2({
tags: true,
tokenSeparators: [','],
theme: 'bootstrap',
placeholder: 'Separated by comma'
});
});
});
也在 apps/controllers/profiles_controller.rb 我添加了强参数
def profile_params
params.require(:profile).permit(:name, skill_list: [])
end