我正在尝试使用https://github.com/peterwillcn/rails4-autocomplete
添加自动完成字段我有一个属于城市的主题模型。城市属于国家。即城市=伦敦。然后city.country.name =英格兰。
我可以通过
显示自动填充功能以显示城市名称#controller
class TripsController < ApplicationController
autocomplete :city, :name
#view
<%= f.autocomplete_field :city_id, autocomplete_city_name_trips_path %>
但我希望国家名称也显示在自动完成字段中。即英国伦敦。不只是伦敦。
有更好的方法吗?
编辑:这也将城市名称传递给控制器,我希望它能通过city_id
答案 0 :(得分:1)
如果你在另一个领域拥有这个国家,那么使用自动完成功能非常容易。您希望在视图中使用update_elements选项来告知自动填充需要填写的其他字段。
<%= f.autocomplete_field :city,
autocomplete_department_name_incidents_path,
update_elements: {country: '#trips_country'} %>
上面代码段中的#trips_country
是您要更新的表单中字段的ID。 country:
是自动完成为您提取的额外数据。
因此,您还需要转到表单并告知自动填充功能以获取其他数据。
autocomplete :city, :name, extra_data: [:country]
如果所有东西都在同一个型号中,这就是可行的。我从未试图使用自动完成功能从其他模型中提取数据,因此我不知道它是否可行。希望这足以让你到达那里。
答案 1 :(得分:0)
rails4-autocomplete gem有你想要使用的选项display_value
。
class TripsController < ApplicationController
autocomplete :city, :name, display_value: :name_with_country
然后在City
模型中
def name_with_country
name + ', ' + country.name
end