rails3-jquery-autocomplete将参数传递给作用域查询

时间:2012-07-04 09:14:38

标签: ruby-on-rails

我很难找到我对rails3-jquery-autocomplete gem遇到的问题的答案。

我有2个型号。环境与环境属性。

class Environment < ActiveRecord::Base
  has_many :properties

 name: string, envfile: string

class Property < ActiveRecord::Base
  scope :with_environment_id, where(:environment_id => 14)  
  belongs_to :environment 

name: string, value: string, environment_id: integer

我有一个视图,它显示属于特定环境的所有属性,并在该视图中显示以下基于属性名称自动搜索的代码

<%= form_tag('tbd')%>
  <%= autocomplete_field_tag :property_name, '', autocomplete_property_name_properties_path>

属性控制器

class PropertiesController < ApplicationController
  autocomplete :property, :name, :scopes => [:with_environment_id]

和routes.rb有

  get :autocomplete_property_name, :on => :collection

自动完成工作正常,但它返回属性表中的所有记录。我只想在视图中显示属于环境的属性。

正如你所看到的,我已经在属性模型中定义了一个范围,我在其中硬编码了一个有效的environment_id,以使其按照我的意愿工作。

所以我的问题是如何将environment_id从视图/控制器传递回范围?

也许我是从错误的角度解决这个问题。

道歉,如果这是一个愚蠢的问题,但它整天困扰我。

1 个答案:

答案 0 :(得分:0)

def get_autocomplete_items(parameters)
  super(parameters).where(:user_id => current_user.id)
end