如何从rails3_jquery_autocomplete上的连接表中引入extra_data

时间:2013-01-23 02:56:01

标签: jquery ruby-on-rails-3 autocomplete

我有一个关联用户所属的角色,并希望使用rails3_jquery_autocomplete通过名称搜索用户。我想在选择用户后显示角色的一些值。

这是我的控制器

class UserController < ApplicationController
   autocomplete :user, :name, scopes: [:join_role], 
   extra_data: [:address, :email]   

这是我的模特

class User < ActiveRecord::Base
  belongs_to :role
  attr_accessible :name, :address, :email
  scope :join_role, joins(:role)


class Role < ActiveRecord::Base
   attr_accessible :name, :level

如何在用户自动填充搜索中获取名称和级别值?

我无法在 extra_data 选项中添加:name :level :role ,因为它将返回sql错误。

此处rails3-jquery-autocomplete-search-by-several-fields表示我可以覆盖 get_autocomplete_items 方法,但不知道如何。

那样的东西?

def get_autocomplete_items(parameters)
    super(parameters)
    result = []
    User.join_role.where('....').each do |user|
      result << {id: user.id, label: user.name, role: user.role.name, 
        address: user.address, email: user.email, level: user.role.level }
    end
    result
  end

但它导致哈希的“未定义方法`id'”......

0 个答案:

没有答案