わかりましたので、ここで明らかな何かが欠けている可能性があります。私はrails3-jquery-autocompleteとformtasticを使用して、アイテムの作成時にユーザーがカテゴリを選択できるようにしています。
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 が非表示フィールドに入り、アイテムが適切に保存されます。
ただし、ユーザーが有効なカテゴリを入力/選択しないと、検証で問題が発生します。次のケースを検証する適切な方法は何ですか:
- ユーザーがボックスに有効なカテゴリではない何かを入力しました。(これは失敗する必要があります。現在は失敗していますが、インライン エラーは実際には隠しフィールドにあります)
- ユーザーが選択を行った後、テキスト フィールドの値を無効なカテゴリに変更します (その結果、非表示フィールドの ID が古くなります。これも失敗するはずですが、代わりに古い選択された ID が使用されます)。
ありがとう!