1

グループが興味を追加できるフォームが欲しいのですが、このフォームはオートコンプリートに役立つはずです。これは多対多の関係であるため、実装方法がわかりません

class Group < ActiveRecord::Base
  attr_accessible :description, :name, :project_id, :interests

  before_save :get_next_available_name

  has_many :users
  belongs_to :project
  has_and_belongs_to_many :interests
end

class Interest < ActiveRecord::Base
  attr_accessible :name

  has_and_belongs_to_many :groups

end

私が持っているビューで:

<%= simple_form_for @group do |f| %>
  <%= f.autocomplete_field :interests, autocomplete_interest_name_groups_path %>
  <%= f.submit "Interesse eintragen" %>
<% end %>

もちろん、「rails g autocomplete:install」と入力しました。おそらくルートを編集して、これを routes.rb に追加する必要があります。

resources :groups do
  get :autocomplete_interest_name, :on => :collection
end

更新: Saurabh が示唆したように、モデルではなくコントローラーに「autocomplete :interest, :name」を配置しました。

しかし、現在 2 つの問題があります。1 つ目: オートコンプリートが表示されません。2番目: 'ruby' Interestを追加してフォームを送信した後: 入力フィールドには次のように書かれています:

[#<Interest id: 38, name: "ruby", created_at: "2013-02-28 09:25:53", updated_at: "2013-02-28 09:25:53">]

もちろん、フィールド自体は空でなければなりません。

ここに画像の説明を入力 ここに画像の説明を入力

この gem が Rails 3.2 と互換性がない場合は、誰か教えてください...

4

1 に答える 1

3

コントローラーでを定義し、autocompleteモデルから次のように削除します。

class GroupsController < ApplicationController
  autocomplete :interest, :name
  # ...
  # ...
end

アップデート:

あなたの質問の更新によると、これはあなたが今しなければならないことです:

あなたの見解:

<%= simple_form_for @group do |f| %>
  <%= f.autocomplete_field :interests, autocomplete_interest_name_groups_path %>
  <%= f.submit "Interesse eintragen" %>
<% end %>

rails3 jquery autocomplete sourcesからの詳細。

于 2013-02-26T09:31:09.983 に答える