我希望有一个表单,群组可以添加他们的兴趣,这个表单应该帮助他们自动完成。 由于这是一个多对多的关系,我不明白如何实现它
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建议的那样,我把他“自动完成:兴趣,:名字”放在控制器中,而不是在模型中。
但我现在有两个问题: 第一:没有自动完成功能。 第二:添加'ruby'兴趣并提交表单后:在输入字段中写有:
[#<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不兼容,有人应该告诉我......
答案 0 :(得分: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的更多内容。