こんにちは私はデータベースに手動で割り当てられた外部キーを使用してrails3-jquery-autocompletegemを設定するのに助けが必要です。
これが私のモデルの様子です
class User < ActiveRecord::Base
has_many :reservations, :foreign_key => 'reserver_id'
attr_accessible :login, :first_name, :last_name
end
class Reservation < ActiveRecord::Base
belongs_to :reserver, :class_name => 'User'
attr_accessible :reserver, :reserver_id, :reserver_login
end
データベースのusersテーブルには、すべての列があります
予約管理者は
autocomplete :users, :login
Routes.rbには
resources :reservations do
get :autocomplete_users_login, :on => :collection
end
そして予約ビューで私はこれを持っています
<%= f.autocomplete_field :reserver_id, autocomplete_users_login_reservations_path %>
テストしてみると、JavaScriptコンソールで呼び出しが行われていることがわかりますが、エラー500が発生します。たとえば、ユーザーデータベースのログイン列にあるxnoを検索しようとしました。
GET http://0.0.0.0:3000/reservations/autocomplete_users_login?term=xno 500 (Internal Server Error) jquery.js:8241
jQuery.ajaxTransport.send jquery.js:8241
jQuery.extend.ajax jquery.js:7720
jQuery.each.jQuery.(anonymous function) jquery.js:7246
jQuery.extend.getJSON jquery.js:7263
a.railsAutocomplete.fn.extend.init.a.autocomplete.source autocomplete-rails.js:17
$.widget._search jquery-ui.js:6547
$.widget.search jquery-ui.js:6540
(anonymous function) jquery-ui.js:6335
これは、データベースで外部キーを使用しているという事実と関係がありますか?はいの場合、ルーティングをどのように構成する必要がありますか。私はgemのドキュメントに従って、usersテーブルを検索し、usersテーブルのログイン列でユーザーを一覧表示できるように設定しようとしましたが、ユーザーが選択されるとIDが返され、:reserver_idとして保存されます。 。選択フィールドで機能した以前のコードは
<%= f.select :reserver_id, User.select_options, :prompt => true %>
ここで、select_optionsメソッドは、個々の配列にログイン文字列とIDペアの配列を作成します。
私は解決策がおそらく本当に簡単であることを知っています、あなたの助けに感謝します...