我正在使用rails3-jquery-autocomplete gem,当它用于模型中存在的字段时,它工作得很好。但是,我一直在尝试将它用于关联,我没有看到如何使其工作。所以,让我们解释一下我的内容:
模型:
class Receipt < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :receipts
end
控制器
class Admin::ReceiptsController < AdminController
autocomplete :user, :name
def index
@receipts = Receipt.all
end
def show
@receipt = Receipt.find_by_id(params[:id])
end
def edit
@receipt = Receipt.find_by_id(params[:id])
@users = User.all
end
end
查看(表单):
<%= form_for(@receipt, :url => admin_receipt_path, :html => { :multipart => true }) do |f| %>
<div class="clearfix">
<%= f.label :value, "Value($)" %>
<div class="input"><%= f.text_field :value %></div>
</div>
<div class="clearfix">
<%= f.label :user_id, "User" %>
<div class="input">
<%= f.autocomplete_field :user_id, autocomplete_user_name_admin_receipts_path %>
</div>
</div>
.....
事情是......我能够获取用户名,但我想在那里存储用户ID。当管理员尝试编辑与用户关联的现有收据时,我想以同样的方式显示该名称。我可以用这个下拉菜做的事情:
<div class="clearfix">
<%= f.label :user_id, "User" %>
<div class="input"><%= f.select :user_id, @users.collect {|p| [ p.name, p.id ] },{:prompt => 'Select a User'} %></div>
</div>
我没有看到我如何用这个宝石做到这一点......