我已经实现了一个Rails表单自动完成系统,就像这个演员Autocomplete with HTML results中的那个一样。问题是:我需要获取自动填充建议中所选对象的ID,因为它是我的外键,我只能选择文本。<%= f.text_field :concelho_id, class: 'autocomplete form-control', data: { source: autocomplete_concelhos_path } %>
我尝试将result_value更改为id而不是name,但是当选择建议时,会自动写入输入字段中的id。我不希望这样,因为它让用户感到困惑。
module Autocomplete
class Concelhos < ApplicationAutocomplete
private
def result_partial(concelho)
ApplicationController.new.render_to_string(partial: 'concelhos/autocomplete', locals: { concelho: concelho }).html_safe
end
def result_value(concelho)
concelho.name
end
def results
@results ||= Concelho.where('name LIKE :query', query: "%#{params[:term]}%").limit(5)
end
end
end
如何将此ID传递给模型参数?我尝试隐藏字段并更改模型自动完成类但没有成功。我还想过远程form_tags使用params,但我想这需要一个提交按钮,我也不希望这样。我也不知道fields_for方法是否适用于此类问题。提前感谢您的帮助。
答案 0 :(得分:0)
我也在努力解决这个问题。 在你的模型中,尝试这样的事情。
def self.text_search(query)
if query.present?
where("name @@ :q, q: query)
else
@concelho = Concelho.all
end
end