Rails 3自动完成宝石与belongs_to关联

时间:2012-04-09 20:48:50

标签: ruby-on-rails autocomplete associations

我正在使用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>

我没有看到我如何用这个宝石做到这一点......

1 个答案:

答案 0 :(得分:2)

Ryan Bates对此进行了截屏。干净,解释清楚

Screencast

如果你不想订阅试试洪流