我通過了auto_complete插件的railscast(這裏是:http://railscasts.com/episodes/102-auto-complete-association),並且讓它工作,即使我有一個稍微不同的設置。auto_complete插件,它可以提交一個ID而不是名稱?
但這裏的麻煩:在railscast中,例子是:belongs_to關聯,並且我有一個has_many:through。我正在使用一個collection_select從一個下拉列表中選擇要選擇的成分列表,但如果我可以使用自動填充,它會更好。麻煩的是,來自collection_select的字段返回一個ingredient_id,這也是我需要的auto_complete行爲。有沒有辦法使這個工作與auto_complete插件?
我不斷尋找鏈接自動完成的Scriptaculous的演示,但現在不見了:(
前,用collection_select:現在
<%= f.collection_select :ingredient_id, Ingredient.all, :id, :name, :prompt => "Select an Ingredient"%>
,與auto_complete半工作:
<%= text_field_with_auto_complete :ingredient, :ingredient_name, {:size => 15}, {:url => formatted_ingredients_path(:js), :method => :get, :with => "'search=' + element.value"} %>
配方模型:
has_many :ingredient_amounts
has_many :ingredients, :through => :ingredient_amounts
def ingredient_name
end
def ingredient_name=(name)
self.ingredient = Ingredient.find_by_name(name) unless name.blank?
end