【问题标题】:Rails autocomplete and acts-as-taggable-onRails 自动完成并充当可标记
【发布时间】:2013-11-03 13:30:34
【问题描述】:

我希望帮助解决问题。 我已经从 here 安装 gem rails3-jquery-autocomplete@

和来自 here 的 gem "acts-as-taggable-on"

这是我的历史:

我的模型是

class Article <ActiveRecord::Base
       acts_as_taggable_on :tags
       attr_accessible :title, :body, :tag_list

我的控制器是

class ArticlesController < ApplicationController
     autocomplete :tag, :name, :class_name => 'ActAsTaggableOn::Tag'
     def tag_cloud
            @tags ||=Article.tag_counts_on(:tags)
     end
     def all
        @tags = Article.tag_counts_on(:tags).limit(8).order('count desc')
        klass = Article
        klass = klass.tagged_with(@tag) if (@tag = params[:tag]).present?
        @articles = klass.where(:state => '4').paginate(:page => params[:page])
        respond_to do |format|
            format.html  # index.html.erb
            format.xml  { render :xml => @articles }
        end
    end

我的路线是

resources :articles do
    collection do
    get 'autocomplete_tag_name' 
    get 'about'
    get 'all'
    get 'myarticles'
    delete 'destroy'
            end
end

我的 _form.html.erb

<div class="field">
           <label for="tag_list">Κατηγορία (Μπορείτε να προσθέσετε διαφορετικές κατηγορίες διαχωρίζοντάς τες με κόμμα)</label><br />
           <%= f.autocomplete_field :tag_list, autocomplete_tag_name_articles_path, :"data-delimiter" => ', ' %>
</div>

我的 index.html.erb

<div class='tag-box'>
          <% @tags.sort_by(&:count).reverse.each do |k| %>
                    <% url_opts = {:action => "all", :controller => "articles"}
                    link_name = "#{k.name} (#{k.count})" %>
                    <% if @tag == k.name %>
                             <%= link_to link_name, url_opts.merge(:tag => nil), :class => "tag current_tag", :title => "Κλικ για εμφάνιση όλων" %>
                    <% else %>
                             <%= link_to link_name,  url_opts.merge(:tag => k.name), :class => "tag", :title => "Κλικ για εμφάνιση άρθρων στην κατηγορία #{k.name}" %>
                    <% end %>
          <% end %>
</div>

我的应用程序.html.erb

<%= stylesheet_link_tag :all %>
<%= javascript_include_tag :defaults %>
<%= javascript_include_tag 'jquery-1.7.2.min.js', 'jquery-ui-1.8.19.custom.min.js', 'autocomplete-rails.js', 'rails.js'  %>
<%= stylesheet_link_tag 'jquery-ui-1.8.19.custom.css' %>

最后我的 Gemfile

gem 'rails', '3.0.11'
gem 'pg'
gem 'jquery-rails', '>= 1.0.12'
gem 'rails3-jquery-autocomplete'
gem 'acts-as-taggable-on', '~> 2.2.2'

在应用程序中可以使用标记系统,但不能使用自动完成功能。

也许我的问题出在文件 _form.html.erb 上。我在文件 new.html.erb 上有代码

<section id="myarticles">
     <h2>Νέο άρθρο</h2>
      <%= render 'form' %>
</section>

是关于渲染和自动完成一起,而自动完成不起作用?

【问题讨论】:

  • Rails 日志是否有错误?
  • 感谢您重播我。我有以下陈述: Started GET "/stylesheets/jquery-ui-1.8.19.custom.css" for 127.0.0.1 at 2012-05-02 20:13:43 +0300 ActionController::RoutingError (No route matches" /stylesheets/jquery-ui-1.8.19.custom.css"):渲染 /home/konstantinos/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/actionpack-3.0.11/lib/action_dispatch/救援/布局中的中间件/模板/救援/routing_error.erb (6.2ms)

标签: ruby-on-rails-3 autocomplete acts-as-taggable-on


【解决方案1】:

最后,我的问题的解决方案很简单,可以帮助遇到同样情况的人。 从public/stylesheets/ui-lightnesspublic/stylesheets/smoothness 复制文件 jquery-ui-1.8.19.custom.css 依赖于来自jQuery UI-Autocomplete 的下载主题

并粘贴到 public/stylesheets/ 并自动消失路由错误并瞧瞧自动完成功能。

我已经按照here的指示进行操作

将 css 文件夹中的文件复制到应用程序的 public/stylesheets 文件夹中。请注意,这些文件可能位于 css 文件夹的下一级,位于名为“ui-lightness”的文件夹中。

但正确的位置在目录 public/stylesheets 上。 还要从 mycontroller 中删除以下代码 :class_name =&gt; 'ActAsTaggableOn::Tag',现在代码看起来像

class ArticlesController < ApplicationController
          autocomplete :tag, :name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 2021-04-20
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多