好的,所以我可能在这里遗漏了一些明显的东西。我正在使用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)
谢谢!