2011-02-12 57 views
2

好自動完成輸入,所以我可能失去了一些東西很明顯這裏。我使用rails3-jquery-autocompleteformtastic允許用戶選擇創建項目時類別:驗證的協會

class Category < ActiveRecord::Base 
    has_many :items 
end 

class Item < ActiveRecord::Base 
    belongs_to :category 

    validates :category_id, :presence => true 
end 

我通過這方面的工作:

semantic_form_for @item do |form| 
    form.inputs do 
    form.input :category_id, :as => :hidden 
    form.autocompleted_input :category, 
          :url => autocomplete_category_path, 
          :id_element => "#item_category_id" 
    end 
end 

這一切工作正常,很正常;當用戶選擇的類別名稱,CATEGORY_ID進入隱藏字段,和項目適當地保存。

但是我遇到了驗證用戶沒有輸入/選擇有效類別的問題。什麼是驗證下列情況下,適當的方式:

  1. 用戶類型的東西到是有效類別的框。 (這需要失敗,現在失敗,但內聯錯誤實際上在隱藏字段上)
  2. 用戶進行選擇,然後將文本字段的值更改爲無效類別(導致隱藏字段中的id這應該也會失敗,但它會使用陳舊的選定ID)

謝謝!

回答

0

好像你正在尋找jQuery Tokeninput。 你只是通過REST服務您的類別或包括JSON進入初始化

$("#mytokeninputfield").tokenInput("/categories.json", 
    { 
    tokenLimit: 1 // allow at most 1 item 
    }); 

<input type="text" id="mytokeninputfield" name="item[category_tokens]" data-pre="<%= @user.category_id %>"/> 

railscast #258 on tokenfields和我的寶石tokenizes以及(雖然我現在不使用它隨時報告錯誤,我會照顧它。或者只是得到啓發,並做你自己:))