嗨,我需要帮助设置 rails3-jquery-autocomplete gem 在我的数据库中手动分配的外键。
这是我的模型的样子
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
我数据库中的用户表包含所有列
预订控制器有
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 表的 login 列列出人员,但是一旦用户被选中,id 就会返回并存储为 :reserver_id . 以前使用选择字段的代码是
<%= f.select :reserver_id, User.select_options, :prompt => true %>
其中 select_options 方法在各个数组中创建了一个登录字符串数组和 id 对。
我知道解决方案可能真的很简单,谢谢您的帮助...