Rails为什么自动完成关联不起作用

时间:2014-03-21 00:54:44

标签: ruby-on-rails ruby ruby-on-rails-4 autocomplete associations

我在工作和公司之间有关联,我想实现自动完成功能 在我的jobs.js.coffe文件中,我有这段代码

jQuery ->
  $('#job_company_name').autocomplete
    source: $('#job_company_name').data('autocomplete-source')

这是我的工作表格视图

<div class="form-group">
  <%= f.label :company_name %><br />
  <%= f.text_field :company_name, data: {autocomplete_source: companies_path} %>
</div> 
<div class="form-group">
  <%= f.label :job_title, "Intitulé du poste", class: "jobs-newtitles" %><br>
  <%= f.text_field :job_title, class: "form-control form-newjob"  %>
</div>

这是我的工作模式

class Job < ActiveRecord::Base

    belongs_to :company

    extend FriendlyId
    friendly_id :job_title, use: :slugged


      def company_name
        company.try(:name)
      end

      def company_name=(name)
        self.company = Company.find_or_create_by_name(name) if name.present?
      end

end

我还将此添加到我的公司控制器

  def autocomplete
    @companies = Company.order(:name).where("name like ?", "%#{params[:term]}%")

    respond_to do |format|
      format.html
      format.json { render json: @companies.map(&:name) }
    end
  end

这是我的路线

  concern :autocompletable do
    get 'autocomplete', on: :collection
  end

resources :companies, concerns: :autocompletable

1 个答案:

答案 0 :(得分:0)

您指定了自动填充网址“companies_path”,而您的自动填充操作是“自动填充”。

使用此检查检查正确的自动完成路径:

  $ rake routes | grep autocomplete

我假设您需要将autocomplete_source修改为以下内容:

  <%= f.text_field :company_name, data: {autocomplete_source: companies_autocomplete_path} %>