好的,所以我可能会遗漏一些明显的东西。我正在使用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进入隐藏字段,并且项目保存得适当。
但是,当用户未输入/选择有效类别时,我会遇到问题。验证以下情况的适当方法是什么:
谢谢!
答案 0 :(得分: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(虽然我目前不使用它随时报告错误,我会照顾它。或者只是得到启发并在你自己的:))