1

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

この宝石でこれを行う方法がわかりません....

4

1 に答える 1

2

Ryan Bates はこれについてスクリーンキャストを行いました。清潔でよく説明されています

スクリーンキャスト

購読したくない場合は、トレントを試してください

于 2012-10-03T21:22:46.557 に答える