2012-04-09 6 views
1

Ich benutze die rails3-jquery-autocomplete gem und es funktioniert ordentlich, wenn es für Felder, die in dem Modell existieren. Allerdings habe ich versucht, es für Assoziationen zu verwenden, und ich sehe nicht, wie es funktioniert. Also lassen Sie uns erklären, was ich habe:Rails 3 Autocomplete Edelstein mit Associates_to Zuordnung

Modelle:

class Receipt < ActiveRecord::Base 
    belongs_to :user 
end 

class User < ActiveRecord::Base 
    has_many :receipts 
end 

-Controller

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 

Ansicht (Form):

<%= 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> 
..... 

Die Sache ist ... Ich kann Benutzernamen holen, aber ich möchte die Benutzer-ID tatsächlich dort speichern. Genauso möchte ich den Namen anzeigen, wenn der Administrator versucht, einen vorhandenen Beleg mit einem zugeordneten Benutzer zu bearbeiten. Etwas, das ich bin in der Lage mit diesem Tropfen zu tun unten:

<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> 

ich versagt habe, um zu sehen, wie würde ich das mit diesem Juwel ....

+0

wie Anmeldung, wo der Code für Ihren Controller ist? – Bnjmn

+0

Hinzugefügt. Auch wenn ich glaube, das gibt nicht viele Informationen für das Problem, das ich versuche zu lösen ... – Nobita

Antwort

2

Ryan Bates hat einen Screencast zu diesem Thema. Saubere und gut erklärt

Screencast

Wenn Sie nicht das Gefühl try torrent

+1

Kannst du nicht einfach seine Methode beschreiben? – ajbraus

Verwandte Themen