[英]Ruby on Rails 4 Using chosen and acts_as_taggable_on
[英]select2 with acts_as_taggable_on in Rails
我正在嘗試使用select2標記我的標簽。 但是,要使其正常工作,我遇到了很多困難。 我已經嘗試了很多方法,但是似乎沒有任何效果,並且谷歌搜索和插入他人的解決方案對我而言並不奏效。 我需要怎么做才能使用select2和acts_as_taggable_on標記標記? 我希望用戶能夠選擇標簽或創建標簽(如果標簽不存在)。
我正在使用Rails5。我正在使用“ select2-rails” gem。
我的模特:
class Event < ApplicationRecord
belongs_to :user
acts_as_commentable
acts_as_taggable_on :tags
end
我的強項:
def event_params
params.require(:event).permit(:title, :description, :tag_list, tag_lists: [])
end
注意:我也嘗試過“ tag_list:[]”(單數)。 我也嘗試過不帶“標簽列表:[]”。 當我刪除“:tag_list”時,所有標簽都不會持久保存到數據庫中。
我的觀點:
<%= form_for @event do |f| %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :text %><br>
<%= f.text_area :description %>
</p>
<p>
<%= f.label :tag_list, "Tags" %><br>
<%= f.text_field :tag_list %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
注意:我已經在這里嘗試了一些方法,但這是我目前的位置。
我的js:
//= require jquery
//= require jquery_ujs
//= require select2
//= require turbolinks
//= require_tree .
//= require bootstrap
我的樣式表:
/*
*= require_tree .
*= require_self
*= require select2
*/
我在events.coffee中嘗試過的事情:
$ ->
$('#event_tag_list').select2 tags: []
return
$('#event_tag_list').select2
tags: true
tokenSeparators: [',',' ']
注意:我已經嘗試了其他一些方法,但這是我最努力的工作。
我以為如果有人遇到類似問題,我會回答這個問題。 它與Rails 5和Turbolinks的工作方式有關。 瀏覽RailsGuides后,我發現問題是Turbolinks覆蓋了正常的頁面加載過程。 我將gem切換為Bootstrap-Tokenfield,但是原理是相同的。 這就是我修復JavaScript的方式:
$(document).on "turbolinks:load", -> $('#event_tag_list').tokenfield();
我的強項:
def event_params
params.require(:event).permit(:title, :description, :tag_list)
end
我的表格:
<p>
<%= f.label :tag_list, "Tags" %> <br>
<%= f.text_field :tag_list, value: f.object.tag_list.to_s %>
</p>
RailsGuides說明: http ://guides.rubyonrails.org/working_with_javascript_in_rails.html#how-turbolinks-works
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.