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 所建议的,我将他“自动完成:兴趣,:名称”放在控制器中,而不是模型中。

但是我现在有两个问题:首先:没有自动完成功能。第二:添加“红宝石”兴趣并提交表格后:在输入字段中写下:

[#<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 回答