选择2轨+act_as_taggable_on轨4问题



我安装了select2-rails,并将act_as_taggable_on gem安装到我的应用程序中。我设置了act_as_taggable_on并且可以工作(我从控制台进行了测试)。但是,当我尝试创建视图以便用户可以添加新标签时,它不起作用。

我想像这样提供标记支持:https://select2.github.io/examples.html#tokenizer。

这是我的设置:

应用/资产/应用程序.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 %>

当我在浏览器上打开配置文件/新建时,skill_list文本字段显示为原样,而不是使用 select2 标记系统。

我的代码一定有问题或缺失。请帮忙。

更新 1

我将代码更改为:

<%= f.select :skill_list, placeholder: "Skills", class: 'multiple-input' %>

没有运气。

因此,我安装了简单的表单 gem,因为根据本文 (http://onewebstory.com/notes/user-friendly-tagging-on-rails),select2 导轨不适用于 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 %>

应用/资产/应用程序.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)

它现在可以工作了。我用这段代码做到了:https://stackoverflow.com/a/33035355/5081949

这是我现在的代码:

app/views/profiles/new.html.erb

<%= f.input :skill_list, input_html: { class: 'multiple-input', multiple: "multiple" }, collection: @profile.skill_list %>

应用/资产/应用程序.js

$(document).ready(function() {
  $('.multiple-input').each(function() {
    $(this).select2({
      tags: true,
      tokenSeparators: [','],
      theme: 'bootstrap',
      placeholder: 'Separated by comma'
      });
    });
});

同样在应用程序/控制器/profiles_controller.rb 中,我添加了强大的参数

def profile_params
  params.require(:profile).permit(:name, skill_list: [])
end

相关内容

  • 没有找到相关文章

最新更新