2

ここのチュートリアルに従っています https://github.com/crowdint/rails3-jquery-autocomplete-app rails3 jquery autocomplete について。オートコンプリートを除いて、すべてが完璧に機能します!

以下は私が使用した手順です。

  1. gemfile に「gem 'rails3-jquery-autocomplete'」を追加しました。
  2. 「rails g autocomplete:install」を使用してオートコンプリート ファイルを生成しました
  3. JavaScriptファイルをダウンロードしました
  4. <%= javascript_include_tag 'jquery-1.4.2.min.js', 'jquery-ui-1.8.4.custom.min.js', 'autocomplete-rails.js', ' によって Javascript ファイルをレイアウトに含めました。 rails.js' %> <%= stylesheet_link_tag 'jquery-ui-1.8.4.custom.css' %>
  5. 「rails g model Brand name:string」で文字列として名前を持つ Brand モデルを作成し、Brand.create(:name => 'Alpha') を介して Brand にいくつかのアイテムを追加しました。
  6. コントローラー「rails g controllerwelcome show」を作成し、routes.rb を get "welcome/show" root :to => "welcome#show" で編集
  7. app/controllers/welcome_controller.rb に「autocomplete :brand, :name」を追加
  8. config/routes.rb に「get 'welcome/autocomplete_brand_name'」を追加
  9. app/views/welcome/show.html.erb: <%= form_tag do %> <%=autocomplete_field_tag 'name', '', welcome_autocomplete_brand_name_path %> <% end %>

基本的に、最後のステップを除いて、チュートリアルのすべてのステップに従いました (text_field_tag 'name ではなく、autocomplete_field_tag にする必要があることがわかりました)。ただし、オートコンプリートは機能しません。私はRailsが初めてで、これに何日も苦労しました。誰でもこの問題に光を当てることができますか?

ありがとう!

4

2 に答える 2

1

OSX で Rails 3.2.8 を使用し、Windows で 3.2.9 を使用して、オートコンプリート アプリのチュートリアルに従って、同様の経験をしました。

https://github.com/crowdint/rails3-jquery-autocomplete-app

サンプル アプリケーションを github からダウンロードした場合、コンパイルして正常に動作しました。手順に従った場合、物事を機能させることができませんでした。サンプルアプリには他にもたくさんのものが含まれているので、これを操作するための最も無駄のない方法が必要でした。掘り下げた後、物事を機能させるための手順に従うことに加えて、次の変更が必要であることがわかりました。

  • チュートリアルでは、jquery およびその他の js ファイルを public/javascript にコピーするよう求められます。しないでください。それらを app/assets/javascript および app/assets/stylesheets の下にコピーします。このバージョンの Rails はそこでそれらを探します。それ以外の場合は失敗します。

  • を取り外します

<%= javascript_include_tag :defaults %>

application.html.erb ファイルの行。そこにないため、ロード中にエラーが発生します。

  • Rails のバージョンは 3.2.9 または 3.2.8 です。明示的に呼び出していることを確認してください。
gem 'rails', '3.2.9'
  • 以下のように、rails3-jquery-autocomplete をバージョン 0.6.0 に明示的にバージョン管理していることを確認してください。
source 'https://rubygems.org'

gem 'rails', '3.2.9'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'
gem 'rails3-jquery-autocomplete', '0.6.0'
gem 'nifty-generators'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

application.js ファイルをまったく変更する必要はありませんでした。

//
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_tree .
//

jqueryui.com からダウンロードした最新の jquery ファイルでは、application.html.erb ファイルのヘッド セクションは次のようになります。

  <head>
    <title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
    <%= stylesheet_link_tag "application" %>

<%= javascript_include_tag 'jquery-1.8.2.js', 'jquery-ui-1.9.1.custom.min.js', 'autocomplete-rails.js', 'rails.js' %>
<%= stylesheet_link_tag 'jquery-ui-1.9.1.custom.css' %>
    <%= csrf_meta_tag %>
    <%= yield(:head) %>
  </head>

私が遭遇した小さなことは、sqlite3 が 64 ビット Windows にロードされないことでした。その解決策は、sqlite3.dll を windows/system ディレクトリにコピーすることです。windows または windows/system32 ではなく、パスのどこにもありません。ruby/bin にもありません。

最後に、rails3-jquery-autocomplete の以前のバージョンでは、text_field_tag がサポートされています。github のサンプルでは、​​この gem のバージョンとして 0.6.0 を使用し、text_field_tag を使用しています。1.0.10 のような最近のドロップでは、autocomplete_field_tag がサポートされています。それらは同じではなく、入力フィールドは同じようにレンダリングされますが、間違ったタグが使用されているとオートコンプリートは機能しません。

于 2012-11-20T23:11:36.347 に答える